在Python中映射名称

时间:2017-09-29 11:28:05

标签: python list mapping list-comprehension names

我收到了以下词典列表:

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的新手,非常感谢任何帮助。

4 个答案:

答案 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))