Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 - Fatal编程技术网

Python 从嵌套列表中删除重复项

Python 从嵌套列表中删除重复项,python,list,Python,List,我有一个列表,希望从中删除重复的列表。我有办法工作,但看起来很难看,我不确定是否有更好的办法 a_list = [[1,2],[2,3],[1,2]] print [list(tup) for tup in set([tuple(x) for x in a_list])] 其中打印: [[1,2],[2,3]] 这就是我想要的。我使用的是小列表,所以我不关心速度,但我感兴趣的是是否有更好的方法来实现这一点。您可以将其缩短一点: print list(set(tuple(x) for x in

我有一个列表,希望从中删除重复的列表。我有办法工作,但看起来很难看,我不确定是否有更好的办法

a_list = [[1,2],[2,3],[1,2]]
print [list(tup) for tup in set([tuple(x) for x in a_list])]
其中打印:

[[1,2],[2,3]]

这就是我想要的。我使用的是小列表,所以我不关心速度,但我感兴趣的是是否有更好的方法来实现这一点。

您可以将其缩短一点:

print list(set(tuple(x) for x in a_list))
输出:

[(1, 2), (2, 3)]
如果您不太担心显示格式,那么只需停止最外层的列表转换,给出:

set([(1, 2), (2, 3)])

我对目前给出的三个答案运行计时器,使用/usr/shar/dict/words作为每个元组的第二部分,第一个元素是一个简单的1。该文件有近50万(479829)字

0.517719984055列表->设置->列表(您的原始代码) 1.30243611336列表->设置->地图(tmajest的建议) ??? 建立新列表(萨尔曼的建议)

最后一个未在超过6分钟的运行时间内完成top确实表明它仍然充分利用了一个CPU

>>> a_list=[[1,2],[2,3],[1,2]]
>>> newlist=[]
>>> for each in a_list:
        if each not in newlist:
            newlist.append(each)


>>> newlist
[[1, 2], [2, 3]]

创建一个新的空列表。如果某个列表中的任何列表不在newlist中,请将其附加到newlist。希望这有帮助。:)

如果最终结果必须是列表,那么就没有更短的方法了。如果需要,可以使用地图而不是列表理解:

list(map(list, set(map(tuple, a_list))))

这将生成一个包含元组的列表。我希望它是一个嵌套着列表的列表