Open In App

Appending Element into a List in Python Dictionary

Last Updated : 30 Jan, 2025
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

We are given a dictionary where the values are lists and our task is to append an element to a specific list. For example: d = {"a": [1, 2], "b": [3, 4]} and we are appending 5 to key "a" then the output will be {'a': [1, 2, 5], 'b': [3, 4]}

Using append()

This is the simplest and most direct way to add an element to a list in a dictionary as we assume the key already exists in the dictionary.

Python
res = {'a': [1, 2, 3]}
res['a'].append(4)
print(res)

Output
{'a': [1, 2, 3, 4]}

Explanation:

  • Access the list using the dictionary key res['a'] and use append() method to add the element 4 to the list.
  • This approach is efficient because it modifies the list in place and avoids creating a new object.

Let's explore some more ways and see how we can append an element to a list in a dictionary.

Using setdefault()

If there is a chance that the key might not exist in the dictionary, the setdefault() method can be used to initialize the key with an empty list before appending.

Python
res = {}
res.setdefault('a', []).append(1)
print(res)

Output
{'a': [1]}

Explanation:

  • setdefault() method checks if the key 'a' exists in the dictionary, If the key does not exist, it initializes the key with an empty list (`[]`).
  • This method prevents KeyError and works well when the dictionary needs to be updated dynamically.

Using defaultdict() from collections

defaultdict() is a specialized dictionary from the collections module that automatically initializes default values for missing keys. This approach simplifies operations involving dynamic updates.

Python
from collections import defaultdict
res = defaultdict(list)
res['a'].append(1)
print(res)

Output
defaultdict(<class 'list'>, {'a': [1]})

Explanation:

  • defaultdict() is created where the default value for missing keys is an empty list.
  • When we access res['a'], the key is automatically initialized with a list if it does not already exist.
  • The value 1 is appended to the list without requiring any explicit checks.

Using Try-Except Block

This manual approach handles missing keys by catching exceptions using try except block. It is useful when explicit error handling is needed.

Python
res = {}
try:
    res['a'].append(1)
except KeyError:
    res['a'] = [1]
print(res)

Output
{'a': [1]}

Explanation:

  • code tries to append 1 to the list at key 'a'.
  • If the key 'a' does not exist a KeyError is raised and the exception handler initializes the key 'a' with a new list containing the value 1.

Using Dictionary Comprehension

Dictionary comprehension is useful for updating multiple keys and their corresponding lists in one step.

Python
res = {'a': [1, 2], 'b': [3]}
res = {k: v + [4] for k, v in res.items()}
print(res)

Output
{'a': [1, 2, 4], 'b': [3, 4]}

Explanation:

  • Iterate through all key-value pairs in the dictionary using a.items() and for each key-value pair concatenates [4] to the existing list v.
  • The updated key-value pairs are reassigned to a.

Similar Reads