我有一个列表列表,我想主要按第一个(第零个)元素对它们进行排序,其次要按python 3.5的自定义函数进行排序,但是我无法做到这一点。
lst = [[1, 'A', 2], [2, 'C', 3], [2, 'A', 4], [2, 'B', 5], [3, 'D', 6]]
def cs(lst):
if lst[1] == 'A':
return 1
if lst[1] == 'B':
return 2
return 3
lst.sort(key=lambda x: (x[0], cs)
。这是我尝试过的方法,但我无法找出为什么我没有得到预期的结果,即:1A,2A,2B,2C,3D。
有人有主意吗?
问题在于,由于某种原因,cs方法无法运行(如果我在此放置了一些打印消息,则不会打印出来)。
答案 0 :(得分:2)
您需要按第二个值排序,如果出现平局,请考虑第一个值:
lst.sort(key=lambda x: (x[1], x[0]))