Skip to content
Related Articles

Related Articles

Python | Add new keys to a dictionary

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 18 Jul, 2022
Improve Article
Save Article

In this article, we will cover how to add a new Key to a Dictionary in Python. We will use 7 different methods to append new keys to a dictionary.

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. Each key-value pair in a Dictionary is separated by a colon: 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. Let’s see how can we add new keys to a dictionary using different ways to a dictionary.

Create a dictionary first


# Let's create a dictionary, the functional way
# 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')


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

Method 1: Add new keys 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 will point to that value. If the key exists, the current value it points to will be overwritten. 


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)


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

Method 2: Add new keys using update() method 

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


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


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

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

{'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 
'key4': 'is', 'key5': 'fabulous'}

{'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 
'key4': 'is', 'key5': 'fabulous', 'newkey1': 'portal'}

Method 3: Add new keys using the __setitem__ method

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


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


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

 Method 4: Add new keys using the ** operator 

We can merge the old dictionary and 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.


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


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

Method 5: Add new keys 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.


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


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

Method 6: Add new keys using a for loop and enumerate() method

Make a list of elements. 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.


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


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

Example 7: 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 = {}


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


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

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!