Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表中删除重复的元素_Python_List_Python 2.7_Duplicates_Duplicate Removal - Fatal编程技术网

Python 从列表中删除重复的元素

Python 从列表中删除重复的元素,python,list,python-2.7,duplicates,duplicate-removal,Python,List,Python 2.7,Duplicates,Duplicate Removal,我正在尝试从列表中删除重复的元素: li = [11, 11, 2, 3, 4] 我正在尝试以下方法: 方式1: li = [x for x in li if x!=11] 方式2: for x in range(0,len(li)): if x==11: li.remove(x) 是否有任何内置函数来执行此任务?编辑: 对不起,我最初误解了你的问题 你真正想要的是一份清单: >>> from collections import Counter

我正在尝试从列表中删除重复的元素:

li = [11, 11, 2, 3, 4]
我正在尝试以下方法:

方式1:

li = [x for x in li if x!=11]
方式2:

for x in range(0,len(li)):
    if x==11:
        li.remove(x)
是否有任何内置函数来执行此任务?

编辑:

对不起,我最初误解了你的问题

你真正想要的是一份清单:

>>> from collections import Counter
>>> li= [11, 11, 2, 3, 4]
>>> [k for k, v in Counter(li).iteritems() if v == 1]
[3, 2, 4]
>>>
这将只保留在列表中仅出现一次的项目


如果顺序无关紧要,那么您可以简单地使用:

否则,您可以使用以下方法:


您说“从列表中删除重复的元素”,但您的第一个代码会删除所有数字11s,而您的第二个代码不会更改您的列表(因为
x
正在从0循环到
len(l1)-1
,在您的情况下,这永远不会是11)。你希望得到什么样的输出?试试这个问题:我的问题是关于删除所有重复的元素“11”,也就是说,操作后将没有元素“11”。哇,太好了。非常感谢。我几乎忘记了set()。对于collections.OrderedDict()方法,+1。但我的问题是删除所有重复的元素。也就是说,全部是“11”。我不确定这两个选项是否能满足OP的需求,但很难确定,因为OP的两个代码似乎都没有达到他所说的需求。+1用于使用OrderedDict来确定OP wan是否没有订购(散列)列表。
>>> li = [11, 11, 2, 3, 4]
>>> list(set(li))
[3, 2, 11, 4]
>>>
>>> from collections import OrderedDict
>>> li= [11, 11, 2, 3, 4]
>>> list(OrderedDict.fromkeys(li))
[11, 2, 3, 4]
>>>