【Python】关于insert方法的问题

我想将元素'Eric'插入到列表末尾,使用insert方法的话(先不用append方法),为什么我没有如愿将'Eric'添加到索引为-1的位置,而是添加到了索引为-2的位置呢?

img

输出没毛病,原数组-1是David,执行insert操作后Eric取代了David位置,David自然后移

插入-1位置是指插入原来最后一个元素的前面

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7687017
  • 除此之外, 这篇博客: Python判断列表里是否有重复元素的三种方法中的 二、用append的方式把原列表中的元素添加到一个新列表,确保新列表里不存在重复的元素,然后比较两个列表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    lst=[1,3,5,8,9,9,0,0,3,3]
    new_list=[]
    
    for i in lst:
        if i not in new_list:
            new_list.append(i)
            #这样能确保新的列表里包含原列表里所有种类的元素,且元素互不重复
    
    if len(new_list)==len(lst):
        print('原列表里的元素互不重复!')
    else:
        print('原列表里有重复的元素!')

    我们只需要判断有无重复元素,并不需要得到去重后的元素,因此上面的代码显得有些多余。下面是我的改良版本(2021年7月15日补充):

     

    lst=[1,3,5,8,9,9,0,0,3,3]
    
    # False表示没有重复,我们先假设没有重复的元素
    flag = False
    length = len(lst)
    for i in range(length):
        # 这里是检查第i个元素是否跟第0到第i-1个元素中的某个重复
        for j in range(i):
            # 发现了一个重复的元素,就可以修改flag的状态
            # 并且后面的元素没有检查的必要了
            if lst[i] == lst[j]:
                flag = True
                break
        if flag:
            break
    
    if flag:
        print('原列表里有重复的元素!')
    else:
        print('原列表里没有重复的元素!')

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^