我收到了以下词典列表:
names = [
{'first_name': 'Jane', 'last_name': 'Doe'},
{'first_name': 'John', 'last_name': 'Kennedy'},
{'first_name': 'Ada', 'last_name': 'Lovelace'}
]
第一部分是返回一个全名数组,我按如下方式执行:
[user['first_name'] +' '+ user['last_name'] for user in names]
它返回了以下内容:
['Jane Doe', 'John Kennedy', 'Ada Lovelace']
部分b是现在做同样的事情,只返回一个字典列表,其中'name'是关键字。结果应该是: 蟒
[{'name':'Jane Doe'},{'name':'John Kennedy'},{'name': 'Ada Lovelace'}]
我已经尝试了所有我能想到的东西。从尝试更改密钥,到更改回列表然后再返回字典。我是Python的新手,非常感谢任何帮助。
答案 0 :(得分:3)
[{'name': '{first_name} {last_name}'.format(**n)} for n in names]
答案 1 :(得分:2)
将列表理解调整为以下内容:
names = [
{'first_name': 'Jane', 'last_name': 'Doe'},
{'first_name': 'John', 'last_name': 'Kennedy'},
{'first_name': 'Ada', 'last_name': 'Lovelace'}
]
result = [{'name':d['first_name']+' '+ d['last_name']} for d in names]
print(result)
输出:
[{'name': 'Jane Doe'}, {'name': 'John Kennedy'}, {'name': 'Ada Lovelace'}]
答案 2 :(得分:2)
使用comprehension的以下join
将有效:
result = [{'name': ' '.join((d['first_name'], d['last_name']))} for d in names]
# [{'name': 'Jane Doe'}, {'name': 'John Kennedy'}, {'name': 'Ada Lovelace'}]
答案 3 :(得分:0)
list(map(lambda d: {'name': ' '.join((d['first_name'], d['last_name']))},names))