根据两个元素对元组列表进行排序

Raz*_*zer 27 python sorting tuples python-3.x

可能重复:
python:如何在两个不同的键上对复杂列表进行排序

我有一个元组列表.我想根据两个元素对它们进行排序.以下是示例

unsorted = [('a', 4, 2), ('a', 4, 3), ('a', 7, 2), ('a', 7, 3), ('b', 4, 2), ('b', 4, 3), ('b', 7, 2), ('b', 7, 3)]
sorted   = [('a', 4, 2), ('b', 4, 2), ('a', 4, 3), ('b', 4, 3), ('a', 7, 2), ('b', 7, 2), ('a', 7, 3), ('b', 7, 3)]
Run Code Online (Sandbox Code Playgroud)

我知道如何在第二个元素上对它们进行排序:

sorted(unsorted, key = lambda element : element[1])
Run Code Online (Sandbox Code Playgroud)

但如何用两把钥匙做到这一点?

Mic*_*ber 58

sorted(unsorted, key=lambda element: (element[1], element[2]))
Run Code Online (Sandbox Code Playgroud)

我假设从样本输出中订购了密钥.

  • @ pod2metra有很多种可能性.可能最好的是`operator.itemgetter(1,2)`. (5认同)
  • 可以排序(unsorted,key = lambda element:(element [1:]))或sorted(unsorted,key = lambda element:(element [1:3]))更好 (3认同)