Search code examples
pythondictionaryenumerate

Increment a key value in a list of dictionaries


I would like to add an id key to a list of dictionaries, where each id represents the enumerated nested dictionary.

Current list of dictionaries:

current_list_d = [{'id': 0, 'name': 'Paco', 'age': 18} #all id's are 0
                  {'id': 0, 'name': 'John', 'age': 20}
                  {'id': 0, 'name': 'Claire', 'age': 22}]

Desired output:

output_list_d = [{'id': 1, 'name': 'Paco', 'age': 18} #id's are counted/enumerated
                  {'id': 2, 'name': 'John', 'age': 20}
                  {'id': 3, 'name': 'Claire', 'age': 22}]

My code:

for d in current_list_d:
    d["id"]+=1

Solution

  • You could use a simple for loop with enumerate and update in-place the id keys in the dictionaries:

    for new_id, d in enumerate(current_list_d, start=1):
        d['id'] = new_id
    
    current_list_d
    [{'id': 1, 'name': 'Paco', 'age': 18},
     {'id': 2, 'name': 'John', 'age': 20},
     {'id': 3, 'name': 'Claire', 'age': 22}]