如何在Python中删除列表中的重复元素

维奈

例如下面的列表

l=[1, 2, 3, 'hello', "world", True, 10, 1, 2, 3, 'hello', True, 10, 1, 2, 3, 'hello', True] ,  

我无法保留关键字True的出现我使用了诸如for循环之类的不同方法来遍历列表中的每个元素,如果新列表中不存在该元素,则将其追加到新列表中(天真的方法),列表理解,内置函数set()。

我得到下面的输出是不正确的!

[1, 2, 3, 'hello', 'world', 10]

请协助我解决这个问题

我写的代码

ll=[]
for i in l :
    if i not in ll :
       ll.append(i)
        
print(ll)

我得到的输出= [1,2,3,'hello','world',10]预期的输出= [1,2,3,'hello','world',True,10]

schwobaseggl

问题在于,1 == True对象相等性包含检查测试。您还必须测试类型相等性:

l = [1, 2, 3, 'hello', "world", True, 10, 1, 2, 3, 'hello', True, 10, 1, 2, 3, 'hello', True]

no_dupes = [x for x, _ in {(x, type(x)) for x in l}]
# [2, 3, 10, True, 1, 'world', 'hello']

或者,调整您的循环方法(保留发生顺序):

ll = []
s = set()
for i in l:
    if (i, type(i)) not in s:
        s.add((i, type(i)))
        ll.append(i)
        
print(ll)
# [1, 2, 3, 'hello', 'world', True, 10]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:计算列表中的重复元素

如何删除向量中的重复元素,类似于Python中的“设置”

如何删除向量中的重复元素,类似于Python中的“设置”

算法-如何有效删除列表中的重复元素?

替换Python列表中的重复元素?

如何使用列表推导删除列表中的相邻重复元素?

如何在python3中删除列表中的重复元素?

R:如何删除字符向量中的重复元素

如何在python列表中仅打印非重复元素?

如何仅打印python列表中的重复元素

列表中的Python无限重复元素

如何删除此列表中的重复元素?

在C#中,如何检查列表中的重复元素,然后打印重复元素的名称?

删除或更改列表中特定的重复元素(并非所有重复元素)

如何使用Dart / Flutter中的列表从列表中删除重复元素?

删除排序列表中的重复元素

如何在Python中的数组中重复元素?

如何在Java中删除单链表中的重复元素?

Python:删除列表和子列表中的重复元素;并删除完整的子列表(如果重复)

在python中从列表中分组和删除重复元素

如何删除 XML 文件中的重复元素

如何从 R 中的“setequally”列表中删除重复元素?

如何返回包含子列表的列表中的重复元素?

如何从 Swift 5 中的数组中删除重复元素?

Ocaml:如何从列表中删除所有重复元素?

python从列表中删除重复元素

python程序从嵌套列表中删除重复元素

使用pop方法删除列表中的重复元素

如何根据python列表中重复元素的索引创建新的python列表