Python-查找并销毁列表中的重复项
在Python中,是否有方法检查列表中的重复项,如果有,则删除它们?我在找这样的东西:Python-查找并销毁列表中的重复项,python,list,Python,List,在Python中,是否有方法检查列表中的重复项,如果有,则删除它们?我在找这样的东西: >>> def check(): >>> # put code here >>> list = ["foo", "foo", "bar"] >>> check(list) >>> list ["foo", "bar"] >>> list2 = ["foo", "bar", "example"] &
>>> def check():
>>> # put code here
>>> list = ["foo", "foo", "bar"]
>>> check(list)
>>> list
["foo", "bar"]
>>> list2 = ["foo", "bar", "example"]
>>> check(list2)
>>> list2
["foo", "bar", "example"]
提前谢谢
更新:
伙计们,我是个编程新手,顺序并不重要。所以for循环应该可以。不过还是要谢谢你 在这里,集合可能是更好的数据结构,因为它首先不能有重复项。您还可以使用它作为工具来统一列表:
>>> lst = ["bar", "foo", "foo"]
>>> set(lst)
set(['foo', 'bar'])
>>> list(set(lst))
['foo', 'bar']
或者,如果需要保留顺序,您可以将数据保存在:
请注意,出于性能原因,最好首先使用正确的数据结构,而不是使用原始列表并在每次操作后使用其中一种转换从中删除重复项。在这里,集合可能是更好的数据结构,因为它首先不能有重复项。您还可以使用它作为工具来统一列表:
>>> lst = ["bar", "foo", "foo"]
>>> set(lst)
set(['foo', 'bar'])
>>> list(set(lst))
['foo', 'bar']
>>>lis = ["foo", "foo", "bar"]
>>>lis=list(set(lis))
>>>print(lis)
['foo','bar']
或者,如果需要保留顺序,您可以将数据保存在:
请注意,出于性能原因,最好首先使用正确的数据结构,而不是使用原始列表并在每次操作后使用其中一个转换从中删除重复项。此空闲会话将显示一种方便的Python方法,通过转换为集合来删除重复项,通过转换删除重复项
>>>lis = ["foo", "foo", "bar"]
>>>lis=list(set(lis))
>>>print(lis)
['foo','bar']
>>>lis = ["foo", "foo", "bar"]
>>>list(set(lis))
这个空闲会话将展示一种方便的Python方法,通过转换到集合来删除重复项,其中重复项通过转换来删除
>>>lis = ["foo", "foo", "bar"]
>>>list(set(lis))
如果需要保留列表中的顺序:
s = set()
new_list = [v for v in old_list if not (v in s or s.add(v))]
如果v还不在s中,则对s.addv求值并返回None,因此取该值。否则,s中的v为True,并跳过该值
如果您不关心订单,只需按照建议使用set即可。如果您需要在列表中保留订单:
s = set()
new_list = [v for v in old_list if not (v in s or s.add(v))]
如果v还不在s中,则对s.addv求值并返回None,因此取该值。否则,s中的v为True,并跳过该值
如果您不关心顺序,只需按照建议使用set即可。如果使用python>2.4
mylist=[foo,foo,bar]
myList=分类设置myList
输出
['bar','foo']如果使用python>2.4
mylist=[foo,foo,bar]
myList=分类设置myList
输出
['bar','foo']好多了。在Python2上,它只是d.keys,如果dictview正常工作,那么元组将在哪里工作,您可以在Python3上使用相同的命令。@agf:我不明白您所说的元组将在哪里工作。KeyView甚至不支持索引。我试图暗示您自己不能对其进行变异,但您可以对其进行迭代,并且它有一个len,即它是一个大小不可变的iterable容器。一个元组并不是一个好例子:好得多。在Python2上,它只是d.keys,如果dictview正常工作,那么元组将在哪里工作,您可以在Python3上使用相同的命令。@agf:我不明白您所说的元组将在哪里工作。KeyView甚至不支持索引。我试图暗示您自己不能对其进行变异,但您可以对其进行迭代,并且它有一个len,即它是一个大小不可变的iterable容器。元组不是一个好例子: