尝试使用delete duplicates,同时使用any()遍历

2021-09-27 05:04:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初级的Python学习者,在使用any时尝试从列表中删除重复项(尝试学习any()all())。你知道吗

def remove_duplicates(x):
    l=0
    for i,item in enumerate(x):
        if any(l==item for l in x)==True:
            print (i,item)
            x=del x[i]
    return(x)
x=[1,2,3,1]
print (remove_duplicates(x))

我得到以下结果。你知道吗

0 1
1 3
[2, 1]

而不是[2,3,1]。你知道吗

2条回答
网友
1楼 ·

如果您不在乎序列的顺序,只需执行以下操作:

list(set(x))
网友
2楼 ·

我知道您正在尝试学习“any”和“all”的用法,但在遍历列表时删除或删除术语不是一个好主意。这是导致代码出现意外行为的原因。 但是,可以使用集合来获取列表/元组中的现有项,而不需要重复项。例如:

a = [0,1,3,1,0,3,4,6,4,5]
b = set(a)
print(b)

它返回:set([0,1,3,4,5,6)]

请注意,b的类型是'set'。如果希望b成为list,可以使用:

b = list(set(a))

相关问题