Python 如何在列表中组合排序参数?

Python 如何在列表中组合排序参数?,python,list,Python,List,我有一个列表如下: list = [{'day':'1','month':'2'},{'day':'3','month':'3'},{'day':'2','month':'6'},{'day':'1','month':'1'}] 我想先按月和后按天对它进行排序,例如(day=1和month=2)>(day=5和month=1) 上述列表的输出将变为: list = [{'day':'1','month':'1'},{'day':'1','month':'2'},{'day':'3','mont

我有一个列表如下:

list = [{'day':'1','month':'2'},{'day':'3','month':'3'},{'day':'2','month':'6'},{'day':'1','month':'1'}]
我想先按月和后按天对它进行排序,例如(day=1和month=2)>(day=5和month=1)

上述列表的输出将变为:

list = [{'day':'1','month':'1'},{'day':'1','month':'2'},{'day':'3','month':'3'},{'day':'2','month':'6'}]
我试过了

sorted(list, key= lambda i: i['month'+'day'])

但这不起作用。

您需要指定一个包含要按其排序的字段的
元组。还请注意,您需要将值强制转换为int,否则顺序将是字典式的,这意味着例如
'12'<'9'
。因此:

l = [{'day':'1','month':'2'},{'day':'3','month':'3'},{'day':'2','month':'6'},
     {'day':'1','month':'1'}]

sorted(l, key=lambda x: (int(x['month']), int(x['day'])))

[{'day': '1', 'month': '1'},
 {'day': '1', 'month': '2'},
 {'day': '3', 'month': '3'},
 {'day': '2', 'month': '6'}]

您需要指定一个包含要按其排序的字段的
元组。还请注意,您需要将值强制转换为int,否则顺序将是字典式的,这意味着例如
'12'<'9'
。因此:

l = [{'day':'1','month':'2'},{'day':'3','month':'3'},{'day':'2','month':'6'},
     {'day':'1','month':'1'}]

sorted(l, key=lambda x: (int(x['month']), int(x['day'])))

[{'day': '1', 'month': '1'},
 {'day': '1', 'month': '2'},
 {'day': '3', 'month': '3'},
 {'day': '2', 'month': '6'}]