Wednesday, July 3, 2024
HomeLanguagesPythonPython | Add new keys to a dictionary

Python | Add new keys to a dictionary

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'}

Dominic Rubhabha Wardslaus
Dominic Rubhabha Wardslaushttps://neveropen.dev
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments