Bernard Asked:2020-06-23 23:19:34 +0000 UTC2020-06-23 23:19:34 +0000 UTC 2020-06-23 23:19:34 +0000 UTC 如何对列表列表中的项目进行排序? 772 例如,我有一个列表: [['c', 3], ['a', 1], ['b', 2]] 如何按第二个元素成对对元素进行排序? 也就是说,它应该是 [['a', 1], ['b', 2], ['c', 3]] python 2 个回答 Voted Best Answer Sergey Gornostaev 2020-06-23T23:23:36Z2020-06-23T23:23:36Z 排序方法 from operator import itemgetter sorted([['c', 3], ['a', 1], ['b', 2]], key=itemgetter(1)) 或者 sorted([['c', 3], ['a', 1], ['b', 2]], key=lambda i: i[1]) vadim vaduxa 2020-06-24T07:00:15Z2020-06-24T07:00:15Z 你可以对任何可迭代对象进行排序,那些有方法的对象 __iter__ 在sortedkeykey中,必须有一个函数接受一个参数(对象元素)并返回一些东西 sorted通过在给定元素上调用键函数来迭代排序对象 最终排序对象中元素的顺序决定了键函数为其返回的内容,更准确地说是键函数所有结果的字典排序列表中的顺序 class Int(int): def __iter__(self): yield from range(self) def get_element(arg): return arg if arg > 1 else -arg print(sorted(Int(4))) # [0, 1, 2, 3] print(sorted(Int(4), key=get_element)) # [1, 0, 2, 3]
排序方法
或者
你可以对任何可迭代对象进行排序,那些有方法的对象
__iter__在
sortedkeykey中,必须有一个函数接受一个参数(对象元素)并返回一些东西sorted通过在给定元素上调用键函数来迭代排序对象最终排序对象中元素的顺序决定了键函数为其返回的内容,更准确地说是键函数所有结果的字典排序列表中的顺序