我要筛选列表列表中的重复项.当两个列表包含相同的元素但顺序不一定相同时,我认为它们是彼此重复的.举个例子

[['A', 'B', 'C'], ['C', 'B', 'A'], ['D', 'B', 'A']]

应该成为

[['A', 'B', 'C'], ['D', 'B', 'A']]

因为['C', 'B', 'A']['A', 'B', 'C']的翻版. 只要列表的最终列表不再包含任何副本,则删除哪个副本并不重要.并且所有列表都需要保持这些元素的顺序.因此,使用set()可能不是一个 Select .

我发现了这个相关的问题: Determine if 2 lists have the same elements, regardless of order?How to efficiently compare two unordered lists (not sets)? 但他们只谈论如何比较两个列表,而不是如何高效地删除重复项.我用的是Python .

推荐答案

使用词典理解

>>> data = [['A', 'B', 'C'], ['C', 'B', 'A'], ['D', 'B', 'A']]
>>> result = {tuple(sorted(i)): i for i in data}.values()
>>> result 
dict_values([['C', 'B', 'A'], ['D', 'B', 'A']])
>>> list( result )
[['C', 'B', 'A'], ['D', 'B', 'A']]

Python相关问答推荐

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

freq = inject在pandas中做了什么?''它与freq = D有什么不同?''

文本溢出了Kivy的视区

极点用特定值替换前n行

对于数组中的所有元素,Pandas SELECT行都具有值

Pandas 删除只有一种类型的值的行,重复或不重复

为什么在生成时间序列时,元组索引会超出范围?

普洛特利express 发布的人口普查数据失败

奇怪的Base64 Python解码

为什么任何一个HTML页面在保存到文件后都会变大6个字节?

在被零整除的情况下,Python不遵循IEEE-754吗?

为什么Python多处理.Process()传递队列参数并且读取比函数传递队列参数和读取更快?

来自Scipy的各种样条线插值器之间有什么不同?

如何只保留Pandas DataFrame尾部的第一个重复行?

拆分单词的正则表达式:前三个大写字母,然后按大写字母拆分,然后按小写字母拆分

如何根据极点中的条件计算当前行以上的行数?

识别相同的重复值-Pandas

Pandas Groupby在try 聚合列时引发ValueError:LEN(索引)!=len(标签)

棋类游戏的极大极小函数

如何在Replit Python中隐藏&行太长&警告(Pyright-Extended)?