python - 如何根据列表中相同的设置值对列表列表进行排序?

标签 python list sorting set

a = [['a', 'b'], ['b'], ['b', 'a']]

因为第一个和第三个元素相同,如果将它们转换为集合,我想对列表“a”进行排序,以便具有相同集合值的任何两个元素彼此相邻。对于上面的示例,排序结果将是:

a = [['a', 'b'], ['b', 'a'], ['b']]

a = [['b'], ['a', 'b'], ['b', 'a']]

最佳答案

您可以使用 list(set(x)) 作为您的 key 。由于这强加的排序有点随意,您可以将 sorted 添加到组合中:

a = [['a', 'b'], ['b'], ['b', 'a']]
a.sort(key=lambda x: sorted(set(x)))

请注意,由于重复元素的处理方式,这与使用 key=sorted 不同。

关于python - 如何根据列表中相同的设置值对列表列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68506057/

相关文章:

java - 从大量输入中获取排序列表(有限长度)的最佳方法是什么

c - C中的整数指针数组排序

python - 字典到字符串不作为字典读回

python - 修复 Numpy 中的相位展开错误

c# - 在列表中搜索数组或列表

Python 排序计数器

python - VS Code Intellisense 不适用于 Conda Python 环境

python - 类型错误 : sequence subscript must be integer or slice error in Jython

list - Python - 在理解中比较两个列表

java - Android:如何在创建列表时禁用列表项