关于列表的Python编程

关于列表的Python编程,python,list,loops,Python,List,Loops,在这个程序中,我想从列表中删除重复的值。这是我写的: list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] def loop(): for a in range(len(list)-1): for b in range(a+1,len(list)): if list[a] == list[b]: del list[a] print(list) loop() 但是,

在这个程序中,我想从列表中删除重复的值。这是我写的:

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

def loop():
    for a in range(len(list)-1):
        for b in range(a+1,len(list)):
            if list[a] == list[b]:
                del list[a]
    print(list)  
loop()
但是,这给了我一个错误:


你能帮我吗?

做如下事情:

create new_list
for item in list:
    if item not in new_list:
        add item to new_list
list = new_list
在Python中:

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

print list
new_list = []
for item in list:
    if item not in new_list:
        new_list.append(item)
list = new_list
print list
现在运行python filename.py,您将看到两个列表之间的差异。

如果您有numpy,那么您可以执行以下操作:我将列表重命名为l以避免歧义:

import numpy as np 
l = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
l_no_duplicates = list( np.unique(l) )

获取唯一项集合的常用方法是使用集合。集合是不同对象的无序集合

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
newList = list(set(list))
[1,2,3,5,8,13,34,21,55,89]


这是因为当您在列表中循环时正在删除项目,请创建一个仅包含所需项目的新列表。如果要删除重复项,只需执行listsetlistName即可