基本上,我希望通过从lst in到set的迭代并将其打印回列表来执行此操作。我得到的问题是我不能遍历set.add(item)。 set.add()在循环外应用一个值时非常好,但是我无法在循环中使用它。
使用此功能,我可以删除重复项。
remove_duplicates(numbers):
lst = []
for i in numbers:
if i not in lst:
lst.append(i)
return lst
但是,我希望能够做到这样的事情。
这是我能走多远。
lst = { }
lsto = [1, 1, 1, 2, 3, 4, 1, 2, 5, 7, 5]
for item in lsto:
lst.add(item)
print(lst)
提前致谢!
答案 0 :(得分:5)
我认为你的意思是,
>>> lsto = [1, 1, 1, 2, 3, 4, 1, 2, 5, 7, 5]
>>> list(set(lsto))
[1, 2, 3, 4, 5, 7]
set(lsto)
将可迭代lsto
转换为集合,然后移除重复元素。再次将设置转到列表将为您提供最终的列表。
答案 1 :(得分:1)
要匹配第一个逻辑并保持顺序,您可以使用OrderedDict:
from collections import OrderedDict
lsto = [1, 1, 1, 2, 3, 4, 1, 2, 5, 7, 5]
print(OrderedDict().fromkeys(lsto).keys())
[1, 2, 3, 4, 5, 7]
偶然设置为您提供相同的订单,但设置为无序集合,因此您不能依赖获取任何订单。