Skip to main content
HomeTutorialsPython

Python Dictionary Append: How to Add Key-Value Pairs

Learn how to append key-value pairs in a Python dictionary using methods such as square bracket notation, .update() for bulk additions, and .setdefault() for conditional inserts.
Aug 2024  · 8 min read

In Python programming, dictionaries are incredibly versatile, allowing you to store data in key-value pairs for efficient management and access. If you are new to Python, understanding how to manipulate these dictionaries is important, as it will greatly enhance how you handle data across various applications. Whether you are configuring settings, managing complex datasets, or simply storing data for quick lookup, dictionaries are your answer.

One of the key operations you will often need to perform is appending elements to a dictionary. This article will guide you through different methods to append items to a dictionary in Python, from the basic square bracket notation to more advanced techniques like using the update() method and the merge operator. 

If you are new to the concept of dictionaries in Python, consider reading also our Python Dictionaries Tutorial, or our Python Dictionary Comprehension Tutorial, which are great resources for learning about key-value pairs and other ideas fundamental to dictionaries. Also, you might find our Getting Started with Python Cheat Sheet useful as a quick reference if you need a refresher on Python syntax and functions.

Quick Answer: How to Append to a Dictionary in Python

If you are looking for a quick solution to append elements to a Python dictionary, the update() method is one of the most common and user-friendly methods:

# Initial dictionary with information for one person
people_info = {
    'person_1': {
        'name': 'Alice',
        'city': 'New York'
    }
}

# Updating Alice's information and adding another person
people_info.update({
    'person_1': {
        'name': 'Alice',
        'city': 'Los Angeles',  # Updated city
        'age': 30               # Added new detail
    },
    'person_2': {
        'name': 'Bob',
        'city': 'San Francisco'
    }
})

print(people_info)
{
    'person_1': {'name': 'Alice', 'city': 'Los Angeles', 'age': 30},
    'person_2': {'name': 'Bob', 'city': 'San Francisco'}
}

In this example, the update() method updates Alice's information under the key 'person_1', changing her city to 'Los Angeles' and adding a new detail age: 30. It also adds a new person, Bob, under the key 'person_2'.

Understanding Python Dictionaries

To start, we can discuss Python dictionaries and why they are so important in programming.

What is a Python dictionary?

A dictionary in Python is a collection of key-value pairs. Each key in a dictionary is unique and maps to a value, which can be of any data type (such as strings, integers, lists, or even other dictionaries). This structure allows for retrieval, addition, and modification of data. Here’s a simple example of a Python dictionary:

# Example of a dictionary
person = {
    'name': 'Alice',
    'age': 25,
    'city': 'New York'
}

# Accessing a value
print(person['name'])  # Output: Alice

In this example, 'name', 'age', and 'city' are keys, and 'Alice', 25, and 'New York' are their corresponding values.

Structure of a Python dictionary

Dictionaries are unordered collections, which means the items do not have a defined order. However, starting from Python 3.7, dictionaries maintain the insertion order, which can be useful in various applications. Here’s a more detailed example to illustrate the structure:

# A more complex dictionary
employee = {
    'id': 101,
    'name': 'John Doe',
    'age': 30,
    'department': 'Engineering',
    'skills': ['Python', 'Machine Learning', 'Data Analysis'],
    'address': {
        'street': '123 Main St',
        'city': 'San Francisco',
        'state': 'CA',
        'zip': '94105'
    }
}

# Accessing nested data
print(employee['skills'][1])  # Output: Machine Learning
print(employee['address']['city'])  # Output: San Francisco

In this example, the employee dictionary contains various types of data, including a list ('skills') and another dictionary ('address'). This demonstrates how dictionaries can be used to store and organize complex data structures.

Now that we have covered the basics, let’s explore the various methods to append elements to a dictionary in more detail.

Methods to Append Elements to a Dictionary in Python

Appending elements to a dictionary is a common task in Python, and there are several methods to do this, each with its own use cases and advantages. Let’s go through them one by one.

Using square bracket notation

The most straightforward way to add a single key-value pair to a dictionary is using square bracket notation. This method is simple and efficient for adding individual elements. Here is the syntax:

dictionary[key] = value

Here’s an example using the square bracket notation:

# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}

# Add a new key-value pair
my_dict['city'] = 'New York'

# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}

This method directly adds or updates the key-value pair in the dictionary. If the key already exists, its value will be updated.

When you use square bracket notation to add a key that already exists in the dictionary, the value associated with that key is updated. This can be both a feature and a caveat, depending on your needs. Here’s an example demonstrating how to handle existing keys:

# Update an existing key-value pair
my_dict['age'] = 30

# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 30, 'city': 'New York'}

In this example, the value of the key 'age' is updated from 25 to 30.

Using the .update() method

The .update() method allows you to add multiple key-value pairs to a dictionary in one go. It can accept another dictionary or an iterable of key-value pairs. Here is the syntax:

dictionary.update(other)

Here’s an example using the .update() method:

# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}

# Add new key-value pairs using update()
my_dict.update({'city': 'New York', 'email': 'alice@example.com'})

# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

The .update() method can also be used with an iterable of key-value pairs. Here’s an example:

# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}

# Add new key-value pairs using update() with an iterable
my_dict.update([('city', 'New York'), ('email', 'alice@example.com')])

# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

The .update() method is particularly useful when you need to update the dictionary with several new entries simultaneously. If a key already exists, its value will be updated.

Using the .setdefault() method

The .setdefault() method is used to add a key-value pair to a dictionary only if the key does not already exist. If the key exists, it returns the existing value. Here is the syntax:

dictionary.setdefault(key, default_value)

Here is an example using the .setdefault() method:

# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}

# Use setdefault to add a new key-value pair
my_dict.setdefault('city', 'New York')

# Attempt to add an existing key
my_dict.setdefault('age', 30)

# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}

In this example, the .setdefault() method adds the 'city' key with the value 'New York' because it did not already exist in the dictionary. When trying to add the 'age' key, it does not change the existing value 25 because the key already exists.

This approach is suitable when you need to ensure that a key has a default value if it does not exist. It can be also used when you want to add new key-value pairs without overwriting existing ones.

Using the dict() constructor

You can also create a new dictionary with additional key-value pairs using the dict() constructor. This approach is useful when you want to create a new dictionary based on an existing one. Here is the syntax:

new_dict = dict(existing_dict, key1=value1, key2=value2)

Here is an example using the dict() constructor:

# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}

# Create a new dictionary with additional key-value pairs
new_dict = dict(my_dict, city='New York', email='alice@example.com')

# Print the new dictionary
print(new_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

In this example, the dict() constructor is used to create a new dictionary new_dict that includes the original key-value pairs from my_dict and the additional key-value pairs 'city': 'New York' and 'email': 'alice@example.com'.

This approach is good when you want to create a new dictionary by combining existing dictionaries and additional key-value pairs. It can also be used when you need to create a new dictionary with some modifications while keeping the original dictionary unchanged.

Comparison table

Here’s a quick reference table for the methods we covered in our tutorial:

Method Use Case Example
Square Bracket Single key-value pair dict[key] = value
.update() Multiple key-value pairs dict.update({key1: value1, key2: value2})
.setdefault() Add key-value pair only if key does not exist dict.setdefault(key, default_value)
dict() constructor Create a new dictionary or update an existing one with additional key-value pairs new_dict = dict(existing_dict, key1=value1, key2=value2)

Advanced Techniques for Appending to Dictionaries in Python

Understanding the basics of dictionary manipulation is essential, but to truly master dictionaries in Python, it is important to explore some advanced techniques. These methods will enhance your ability to efficiently manage and manipulate dictionaries in more complex scenarios.

Appending to lists within a dictionary

Often, dictionaries are used to store lists as values. Appending elements to these lists requires a slightly different approach. Here’s how you can do it using .append():

# Initialize a dictionary with a list as a value
dictionary_w_list = {'fruits': ['apple', 'banana']}

# Append an element to the list within the dictionary
dictionary_w_list['fruits'].append('cherry')

# Print the updated dictionary
print(dictionary_w_list)
# Output: {'fruits': ['apple', 'banana', 'cherry']}

In this example, we start with dictionary_w_list where the key 'fruits' maps to a list ['apple', 'banana']. By using the .append() method, we add 'cherry' to the list. This technique is particularly useful when managing collections of items within a single dictionary.

Combining dictionaries with the merge operator

Python 3.9 introduced the merge operator (|) for combining dictionaries. This operator allows you to merge two dictionaries into a new one effortlessly:

# Initialize two dictionaries
first_dictionary = {'name': 'Alice', 'age': 25}
second_dictionary = {'city': 'New York', 'email': 'alice@example.com'}

# Merge the dictionaries using the merge operator
merged_dictionary = first_dictionary | second_dictionary

# Print the merged dictionary
print(merged_dictionary)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

In this example, first_dictionary and second_dictionary are merged into a new dictionary merged_dictionary. The merge operator (|) combines the key-value pairs from both dictionaries, making it a quick and convenient method for merging dictionaries.

Using the update operator

For in-place updates, Python 3.9 also introduced the update |= operator. This operator allows you to update the original dictionary with the key-value pairs from another dictionary.

# Initialize two dictionaries
first_dictionary = {'name': 'Alice', 'age': 25}
second_dictionary = {'city': 'New York', 'email': 'alice@example.com'}

# Update dict1 in-place using the update |= operator
first_dictionary |= second_dictionary

# Print the updated dictionary
print(first_dictionary)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': 'alice@example.com'}

Here, the update |= operator updates first_dictionary with the contents of second_dictionary in place. What this means is that first_dictionary is directly modified. This method is particularly useful when you need to update an existing dictionary without creating a new one.

Conclusion

In this article, we have learned about Python dictionaries and the methods for appending key-value pairs. We started with fundamental techniques like using square bracket notation and the .update() method, which is essential for quick and straightforward updates. We then moved on to more advanced techniques, including appending to lists within dictionaries, merging dictionaries with the merge operator (|), and performing in-place updates with the update |= operator. These methods provide powerful tools for managing complex data structures and performing efficient operations.

There are some of our resources you can look into to advance your Python expertise. You can check out the Introduction to Python course which is an excellent starting point because it provides a solid foundation in Python’s basics with a focus on data science applications. The Python Programming skill track also offers a comprehensive curriculum that takes you from beginner to proficient programmer.

Our Python Developer career track is also designed for those who want to look into Python programming. It provides extensive coverage of more complex programming constructs and techniques.


Photo of Samuel Shaibu
Author
Samuel Shaibu
LinkedIn

Experienced data professional and writer who is passionate about empowering aspiring experts in the data space.

Frequently Asked Questions

How do I add a new key-value pair to a Python dictionary?

You can add a new key-value pair to a Python dictionary using square bracket notation, like dictionary[key] = value. This method updates the dictionary in place.

What is the .update() method in Python dictionaries, and how is it used?

The .update() method is used to add multiple key-value pairs to a dictionary. It can accept another dictionary or an iterable of key-value pairs, updating the existing dictionary.

What is the difference between the .update() method and the merge operator (|) for combining dictionaries in Python?

The .update() method modifies the existing dictionary in place by adding key-value pairs from another dictionary, potentially overwriting existing keys. The merge operator creates a new dictionary containing elements from both dictionaries, leaving the original dictionaries unchanged.

Topics

Learn Python with DataCamp

Course

Introduction to Python

4 hr
5.7M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
See DetailsRight Arrow
Start Course
See MoreRight Arrow
Related

tutorial

Python .append() and .extend() Methods Tutorial

Learn how to use the .append() and .extend() methods to add elements to a list.
DataCamp Team's photo

DataCamp Team

2 min

tutorial

Python Dictionaries Tutorial

Learn how to create a dictionary in Python.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Python Dictionary Tutorial

In this Python tutorial, you'll learn how to create a dictionary, load data in it, filter, get and sort the values, and perform other dictionary operations.
DataCamp Team's photo

DataCamp Team

14 min

tutorial

How to Sort a Dictionary by Value in Python

Learn efficient methods to sort a dictionary by values in Python. Discover ascending and descending order sorting and bonus tips for key sorting.
Neetika Khandelwal's photo

Neetika Khandelwal

5 min

tutorial

Python Append String: 6 Essential Concatenation Techniques

Explore six key methods for string concatenation in Python, using consistent examples to highlight the syntax and application of each technique.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Python Dictionaries Tutorial: The Definitive Guide

Learn all about the Python Dictionary and its potential. You will also learn how to create word frequency using the Dictionary.
Aditya Sharma's photo

Aditya Sharma

6 min

See MoreSee More