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/