【发布时间】:2021-05-01 20:37:11
【问题描述】:
我有一本格式如下的字典:
d = {'award1' : { 'nominees': ['name1', 'name2'],
'presenters': ['name3', 'name4'],
'winner' : 'name1'
}
'award2' : { 'nominees': ['name5', 'name6'],
'presenters': ['name7', 'name8'],
'winner' : 'name6'
}
}
我正在尝试创建一个分隔值的字典列表,即结果应该是:
my_list = [ { 'award1': ['name1','name2'], 'award2': ['name5','name6'] },
{ 'award1': ['name3','name4'], 'award2': ['name7','name8'] },
{ 'award1': 'name1', 'award2': 'name6' }
]
有没有办法通过单行列表理解来做到这一点?
到目前为止我所尝试的:
lst = [{key:val['nominees'], key:val['presenters'], key:val['winner']} for key, val in d.items()]
而我的代码使用了一个普通的“for”循环:
nominees, winner, presenters = {}, {}, {}
for key, val in d.items():
nominees[key] = val['nominees']
winner[key] = val['winner']
presenters[key] = val['presenters']
lst = [nominees, winner, presenters]
【问题讨论】:
-
你能分享一下你迄今为止为此做了什么吗?是的,有一种方法可以通过一个列表理解来实现它。如果您可以与普通的
for分享代码,我们将更乐意分享列表理解 版本。我们只需要看看你为解决这个问题所做的努力 -
字典必须有唯一键..
-
@Anonymous 更新了我的尝试和 for 循环。
标签: python list dictionary list-comprehension dictionary-comprehension