Open In App

Python | Add new keys to a dictionary

Improve
Improve
Like Article
Like
Save
Share
Report

Before learning how to add items to a dictionary, let’s understand in brief what a  dictionary is. A Dictionary in Python is an unordered collection of data values, used to store data values like a map, unlike other data types that hold only a single value as an element, a Dictionary holds a key: value pair. 

Key-value is provided in the dictionary to make it more optimized. A colon separates each key-value pair in a Dictionary: whereas each key is separated by a ‘comma’. 

The keys of a Dictionary must be unique and of immutable data types such as Strings, Integers, and tuples, but the key values can be repeated and be of any type. In this article, we will cover how to add to a Dictionary in Python.

How to Add Keys and Values to a Dictionary

To add a new item in the dictionary, you need to add a new key and insert a new value respective to it. There are various methods to add items to a dictionary in Python here we explain some generally used methods to add to a dictionary in Python. 

  1. Using Subscript notation 
  2. Using update() Method
  3. Using __setitem__ Method
  4. Using the  ** operator 
  5. Using If statements
  6. Using enumerate() Method
  7. Using Zip
  8. Using a Custom Class
  9. Using Merge | Operator

Add to a Python Dictionary using the Subscript Notation

This method will create a new key/value pair on a dictionary by assigning a value to that key. If the key doesn’t exist, it will be added and point to that value. If the key exists, its current value will be overwritten. 

Python3




dict = {'key1': 'geeks', 'key2': 'fill_me'}
print("Current Dict is:", dict)
 
# using the subscript notation
# Dictionary_Name[New_Key_Name] = New_Key_Value
dict['key2'] = 'for'
dict['key3'] = 'geeks'
print("Updated Dict is:", dict)


Output

Current Dict is: {'key1': 'geeks', 'key2': 'fill_me'}
Updated Dict is: {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks'}

Add to a Python Dictionary using update() Method

When we have to update/add a lot of keys/values to the dictionary, the update() method is suitable. The update() method inserts the specified items into the dictionary.

Python3




dict = {'key1': 'geeks', 'key2': 'for'}
print("Current Dict is:" , dict)
 
# adding key3
dict.update({'key3': 'geeks'})
print("Updated Dict is:", dict)
 
# adding dict1 (key4 and key5) to dict
dict1 = {'key4': 'is', 'key5': 'fabulous'}
dict.update(dict1)
print("After adding dict1 is:" , dict)
 
# by assigning
dict.update(newkey1='portal')
print("After asssigning new key:" , dict)


Output :

Current Dict is: {'key1': 'geeks', 'key2': 'for'}
Updated Dict is: {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks'}
After adding dict1 is: {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 'key4': 'is', 'key5': 'fabulous'}
After asssigning new key: {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 'key4': 'is', 'key5': 'fabulous', 'newkey1': 'portal'}

Add to Python Dictionary using the __setitem__ Method

The __setitem__ method is used to add a key-value pair to a dictionary. It should be avoided because of its poor performance (computationally inefficient).

Python3




dict = {'key1': 'geeks', 'key2': 'for'}
 
# using __setitem__ method
dict.__setitem__('newkey2', 'GEEK')
print(dict)


Output :

{'key1': 'geeks', 'key2': 'for', 'newkey2': 'GEEK'}

Add to Python Dictionary using the ** Operator

We can merge the old dictionary and the new key/value pair in another dictionary. Using ** in front of key-value pairs like  **{‘c’: 3} will unpack it as a new dictionary object.

Python3




dict = {'a': 1, 'b': 2}
 
# will create a new dictionary
new_dict = {**dict, **{'c': 3}}
 
print(dict)
print(new_dict)


Output :

{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3}

Add to Python Dictionary using the “in” operator and IF statements

If the key is not already present in the dictionary, the key will be added to the dictionary using the if statement. If it is evaluated to be false, the “Dictionary already has a key” message will be printed.

Python3




mydict = {"a": 1, "b": 2, "c": 3}
 
if "d" not in mydict:
    mydict["d"] = "4"
else:
    print("Dictionary already has key : One. Hence value is not overwritten ")
 
print(mydict)


Output :

{'a': 1, 'b': 2, 'c': 3, 'd': '4'}

Add to Python Dictionary using enumerate() Method

Use the enumerate() method to iterate the list, and then add each item to the dictionary by using its index as a key for each value.

Python3




list1 = {"a": 1, "b": 2, "c": 3}
list2 = ["one: x", "two:y", "three:z"]
 
# Using for loop enumerate()
for i, val in enumerate(list2):
 
    list1[i] = val
 
print(list1)


Output :

{'a': 1, 'b': 2, 'c': 3, 0: 'one: x', 1: 'two:y', 2: 'three:z'}

Add Multiple Items to a Python Dictionary with Zip

In this example, we are using a zip method of Python for adding keys and values to an empty dictionary python. You can also use an in the existing dictionary to add elements in the dictionary in place of a dictionary = {}.

Python3




dictionary = {}
 
keys = ['key2', 'key1', 'key3']
values = ['geeks', 'for', 'geeks']
 
for key, value in zip(keys, values):
    dictionary[key] = value
print(dictionary)


Output :

{'key2': 'geeks', 'key1': 'for', 'key3': 'geeks'}

Add New Keys to Python Dictionary with a Custom Class

At first, we have to learn how we create dictionaries in Python. It defines a class called my_dictionary that inherits from the built-in dict class. The class has an __init__ method that initializes an empty dictionary, and a custom add method that adds key-value pairs to the dictionary.

Python3




# Create your dictionary class
class my_dictionary(dict):
 
  # __init__ function
  def __init__(self):
    self = dict()
 
  # Function to add key:value
  def add(self, key, value):
    self[key] = value
 
 
# Main Function
dict_obj = my_dictionary()
 
dict_obj.add(1, 'Geeks')
dict_obj.add(2, 'forGeeks')
 
print(dict_obj)


Output :

{1: 'Geeks', 2: 'forGeeks'}

Add New Keys to a Dictionary using the Merge | Operator

In this example, the below Python code adds new key-value pairs to an existing dictionary using the `|=` merge operator. The `my_dict` dictionary is updated to include the new keys and values from the `new_data` dictionary.

Python3




# Existing dictionary
my_dict = {'name': 'John', 'age': 25}
 
# New key-value pairs to add
new_data = {'city': 'New York', 'gender': 'Male'}
 
# Adding new keys using the merge operator
my_dict |= new_data
 
# Display the updated dictionary
print(my_dict)


Output :

{'name': 'John', 'age': 25, 'city': 'New York', 'gender': 'Male'}

In this tutorial, we have covered multiple ways to add items to a Python dictionary. We have discussed easy ways like the update() method and complex ways like creating your own class. Depending on whether you are a beginner or an advanced programmer, you can choose from a wide variety of techniques to add to a dictionary in Python. 

You can read more informative articles on how to add to a dictionary:



Last Updated : 18 Jan, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads