python中按星期天排序的词典列表
我有一个python中的dict列表,如下所示:python中按星期天排序的词典列表,python,Python,我有一个python中的dict列表,如下所示: [{'day':'星期三','workers':['John','Smith']}, {'day':'Monday','workers':['Kelly']}] 我想按一周中的哪一天对它们进行排序,这样结果是 [{'day':'Monday','workers':['Kelly']}, {'day':'星期三','workers':['John','Smith']}] 我可以用这个答案对工作日名称列表进行排序:但有没有办法对上述内容进行排序?
[{'day':'星期三','workers':['John','Smith']},
{'day':'Monday','workers':['Kelly']}]
我想按一周中的哪一天对它们进行排序,这样结果是
[{'day':'Monday','workers':['Kelly']},
{'day':'星期三','workers':['John','Smith']}]
我可以用这个答案对工作日名称列表进行排序:但有没有办法对上述内容进行排序?您链接到的示例使用的基本方法也适用于您的词典列表案例。诀窍是,您需要从列表中的字典中提取day值以使其工作。用于
键
参数的lambda
表达式是一种方法
例如:
day_order = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
data = [{'day' : 'Wednesday' , 'workers' : ['John' , 'Smith']} , {'day' : 'Monday' , 'workers' : ['Kelly']}]
sorted(data, key=lambda d: day_order.index(d["day"]))
输出:
[{'day': 'Monday', 'workers': ['Kelly']},
{'day': 'Wednesday', 'workers': ['John', 'Smith']}]
使用lambda函数从字典中提取工作日名称,然后返回链接问题中的索引
weekdays = ["Mon", "Tue", "Wed", "Thu", "Fri"]
list_of_dicts =
[{'day' : 'Wednesday' , 'workers' : ['John' , 'Smith']} ,
{'day' : 'Monday' , 'workers' : ['Kelly']}]
list_of_dicts.sort(key = lambda d: weekdays.index(d['day']))
要按键对词典排序,可以执行以下操作: 排序(dicts,key=lambda d:d[“key”]) 将此问题与以下问题的答案合并:
m=[“星期一”、“星期二”、…]
打印(已排序(dicts,key=lambda d:m.index(d[“day”]))
在这里:
lst = [{'day' : 'Wednesday' , 'workers' : ['John' , 'Smith']} ,
{'day' : 'Monday' , 'workers' : ['Kelly']},
{'day' : 'Friday' , 'workers' : ['Nelly']}]
m = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
result = sorted(lst, key= lambda x: m.index(x['day']))
print(result)
#[{'day': 'Monday', 'workers': ['Kelly']}, {'day': 'Wednesday', 'workers': ['John', 'Smith']}, {'day': 'Friday', 'workers': ['Nelly']}]
这回答了你的问题吗?格言天生不分等级。。你为什么首先要对它们进行分类。。通过对字典进行排序,你想达到什么目的?需要排序的是列表…@ArunKalirajaBaskaran他们试图按照字典的一个键对列表进行排序,而不是试图对字典本身进行排序。您的声明也有一段时间不正确了,Python dicts从3.6开始一直遵循/保持插入顺序,这是从3.7开始的语言规范的一部分。很好的技巧……因为我称它为错误的,这应该是显而易见的。