嵌套列表,
A = [[2, 0], [1, 0], [4, 3], [3, 2], [5, 1]]
我正在尝试根据1st
对其进行排序元素按升序排列,即
result_A = [[2, 0], [1, 0], [5, 1], [3, 2], [4, 3]]
当 1st
元素在任何嵌套列表中都很常见,我尝试根据 0th
对它进行排序元素。所以,
required_A = [[1, 0], [2, 0], [5, 1], [3, 2], [4, 3]]
这是我到目前为止的代码:
required_A = sorted(A, key=itemgetter(1))
我可以根据1st
对其进行排序元素,但我不知道如何在 0th
上再次对其进行排序元素,而剩余的顺序不会困惑。谢谢!
最佳答案
这展示了如何修复您的 itemgetter
代码。
>>> from operator import itemgetter
>>> sorted(A, key=itemgetter(1, 0))
[[1, 0], [2, 0], [5, 1], [3, 2], [4, 3]]
当您将多个参数传递给 itemgetter
时,它会返回一个函数,该函数可用于根据给定序列构造一个元组,其中的值来自作为 itemgetter 参数提供的相应索引
.
像所有序列一样,元组可以进行比较 lexicographically在Python中。这意味着将从左到右、逐个索引地对它们进行比较,直到一个序列超过另一个序列。这也意味着元组可以为您的排序提供出色的键。
关于python - 按特定逻辑对嵌套列表进行排序 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523561/