如何根据Python中列表的第一个元素对列表列表进行排序?
>>> list01 = (['a','b','c'],['b','a','d'],['d','e','c'],['a','f','d'])
>>> map(sorted, list01)
[['a', 'b', 'c'], ['a', 'b', 'd'], ['c', 'd', 'e'], ['a', 'd', 'f']]
>>> sorted(map(sorted, list01))
[['a', 'b', 'c'], ['a', 'b', 'd'], ['a', 'd', 'f'], ['c', 'd', 'e']]
答案 0 :(得分:1)
Python的sorted()可以接收一个排序函数。 如果要按每个子列表中的第一个元素进行排序,可以使用以下命令:
>>> lst = [[2, 3], [1, 2]]
>>> sorted(lst, key=lambda x: x[0])
[[1, 2], [2, 3]]
有关sorted()的更多信息,请参阅official docs。
答案 1 :(得分:1)
from operator import itemgetter
sorted(list01, key=itemgetter(0))
答案 2 :(得分:0)
>>> sorted(list01, key=lambda l: l[0])
[['a', 'b', 'c'], ['a', 'f', 'd'], ['b', 'a', 'd'], ['d', 'e', 'c']]
这是你的意思吗?
答案 3 :(得分:0)
除了将key
函数传递给sorted
之外(如前面的答案中所示),您还可以在Python2中传递cmp
(比较)函数,如下所示:
sorted(list01, cmp=lambda b, a: cmp(b[0], a[0]))
上述表达式的输出与使用key
函数的输出相同。
虽然他们已从cmp
删除了Python3中的sorted
参数,https://docs.python.org/3.3/library/functions.html#sorted,但使用key
函数是唯一的选择。