In this article, we will cover how to add a new Key to a Dictionary in Python. We will use 8 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.
Python Program to Add Keys to a Dictionary
Let’s see how can we add new keys to a dictionary using different ways to a dictionary.
- Add new key value to the dictionary Python using the Subscript notation
- Add new key value to the dictionary with update() Method
- Add new key value to the dictionary Python using the __setitem__ Method
- Add a new key value to the dictionary Python using the ** operator
- Add new key value to the dictionary with If statements
- Add key value to the dictionary with enumerate()
- Add key value to the dictionary with Zip
- Add new Keys to the dictionary with a Custom Class
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.
Python3
dict = { 'key1' : 'Lazyroar' , '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' ] = 'Lazyroar' print ( "Updated Dict is:" , dict ) |
Output
Current Dict is: {'key1': 'Lazyroar', 'key2': 'fill_me'}
Updated Dict is: {'key1': 'Lazyroar', 'key2': 'for', 'key3': 'Lazyroar'}
Add new keys 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' : 'Lazyroar' , 'key2' : 'for' } print ( "Current Dict is:" , dict ) # adding key3 dict .update({ 'key3' : 'Lazyroar' }) 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’: ‘Lazyroar’, ‘key2’: ‘for’}
Updated Dict is: {‘key1’: ‘Lazyroar’, ‘key2’: ‘for’, ‘key3’: ‘Lazyroar’}
After adding dict1 is: {‘key1’: ‘Lazyroar’, ‘key2’: ‘for’, ‘key3’: ‘Lazyroar’, ‘key4’: ‘is’, ‘key5’: ‘fabulous’}
After asssigning new key: {‘key1’: ‘Lazyroar’, ‘key2’: ‘for’, ‘key3’: ‘Lazyroar’, ‘key4’: ‘is’, ‘key5’: ‘fabulous’, ‘newkey1’: ‘portal’}
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).
Python3
dict = { 'key1' : 'Lazyroar' , 'key2' : 'for' } # using __setitem__ method dict .__setitem__( 'newkey2' , 'GEEK' ) print ( dict ) |
Output :
{'key1': 'Lazyroar', 'key2': 'for', 'newkey2': 'GEEK'}
Add new keys 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 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.
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 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.
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 = [ 'Lazyroar' , 'for' , 'Lazyroar' ] for key, value in zip (keys, values): dictionary[key] = value print (dictionary) |
Output :
{'key2': 'Lazyroar', 'key1': 'for', 'key3': 'Lazyroar'}
Add new Keys to the dictionary with a Custom Class
At first, we have to learn how can we create dictionaries using 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'}