python - 对嵌套元组列表进行排序

标签 python sorting

所以,我想做的是对包含 (num, tuple) 的列表进行排序,我想首先按元组的第二个值对其进行排序,并且如果 2 相等,我想按num(第一个元组)对其进行排序。

所以可以说我有:

l = [(1,(2,3)),(3,(2,1)),(2,(2,1))]
print(l.sort(key=something))
[(2,(2,1)), (3,(2,1)), (1,(2,3))]

我已经尝试过:

l.sort(key=itemgetter(1,0)

当然没用。有什么想法吗?

谢谢。

最佳答案

operator.itemgetter 工作正常:

>>> from operator import itemgetter
>>> l = [(1,(2,3)),(3,(2,1)),(2,(2,1))]
>>> l.sort(key=itemgetter(1,0))
>>> print(l)
[(2, (2, 1)), (3, (2, 1)), (1, (2, 3))]
>>>

我认为问题是您尝试打印 list.sort 的结果。您不能执行此操作,因为它是就地方法(它始终返回 None)。

关于python - 对嵌套元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20923955/

相关文章:

python - PIL open() 方法不适用于 BytesIO

python - spacy 如何使用词嵌入进行命名实体识别 (NER)?

python - 按属性顺序迭代字典列表

Python:对文本文件进行两次排序并拆分为不同的文件?

mysql - 重新排序用作排序子句的主键列

java - LinkedList 与 ArrayList 在维护有序列表方面的性能

Python 3 - 从 X509 证书中提取公钥并用它加密

python - 这个网页登录Python脚本正确吗?

python - 修复 torchvision 变换的随机种子

c++ - 无法将数组传递给排序函数(需要对列而不是行进行排序)