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'}]