Search code examples
pythonlistmappinglist-comprehensionnames

Mapping names in Python


I have been given the following list of dictionaries:

names = [
    {'first_name': 'Jane', 'last_name': 'Doe'},
    {'first_name': 'John', 'last_name': 'Kennedy'},
    {'first_name': 'Ada', 'last_name': 'Lovelace'}
]

Part a was to return an array of full names, which I did as follows:

[user['first_name'] +' '+ user['last_name'] for user in names]

It returned the following:

['Jane Doe', 'John Kennedy', 'Ada Lovelace']

Part b is to Now do the same thing above, only return a list of dictionaries, with 'name' being the key. Result should be: python

[{'name':'Jane Doe'},{'name':'John Kennedy'},{'name': 'Ada Lovelace'}]

I have tried everything I can think of. From trying to change the key, to changing back to a list and then back to a dictionary. I'm very new at Python and would appreciate any help possible.


Solution

  • The following comprehension using join will work:

    result = [{'name': ' '.join((d['first_name'], d['last_name']))} for d in names]
    # [{'name': 'Jane Doe'}, {'name': 'John Kennedy'}, {'name': 'Ada Lovelace'}]