Python – Dictionary
In Python, a dictionary is a sort of data container that may hold numerous pieces of information in a single variable. It can include components of many data kinds and contains data in key-value pairs. Because dictionary elements are not ordered, index numbers cannot be used to retrieve dictionary elements. The keys of a dictionary are immutable and so cannot be changed. It also prohibits the use of multiple items with the same key (no duplicate keys).
Create Dictionary
A Python – Dictionary may be made by using a comma to separate the components and surrounding them with curly brackets. It may also be generated with the help of the dict() method.
#Dictionary with multiple datatypes
Info = {
"name": "John",
"age": 25,
"city": "London"
}
print(Info)
#Creating dictionary with constructor
Info = dict(name="Marry", age=20, city="Newyork")
print(Info)
The output of the above code will be:
{'name': 'John', 'age': 25, 'city': 'London'}
{'name': 'Marry', 'age': 20, 'city': 'Newyork'}
Access element of a Dictionary
A key encased in square brackets [ can be used to access a dictionary entry. The get() method can also be used to do the same thing.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
print(Info["city"])
print(Info.get("name"))
The above code will give the following output:
London John
Modify values in Dictionary
To change the value, use the key to assign a new value.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info["city"] = "Paris"
print(Info)
The above code will give the following output:
{'name': 'John', 'age': 25, 'city': 'Paris'}
Dictionary Length
To get the total number of key-value pairs in the dictionary, use the len() function.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
print(len(Info))
The output of the above code will be:
3
Loop over Dictionary’s keys
This technique may be used to access the keys of a dictionary one at a time.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
for x in Info:
print(x)
The output of the above code will be:
name age city
Loop over Dictionary’s values
This technique may be used to access the values of a dictionary one by one.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
#first method
for x in Info:
print(Info[x])
print()
#second method
for x in Info.values():
print(x)
Each method yields the same outcome. The following is the result of the above code:
John 25 London John 25 London
Check a Key in the Dictionary
The in keyword can be used to determine whether or not a given key exists in the dictionary.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
if "lastname" in Info:
print("Yes, 'lastname' is a key in the dictionary.")
else:
print("No, 'lastname' is not a key in the dictionary.")
The above code will give the following output:
No, 'lastname' is not a key in the dictionary.
Add elements in Dictionary
This may be accomplished by giving new index keys values.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info["gender"] = "Male"
print(Info)
The output of the above code will be:
{'name': 'John', 'age': 25, 'city': 'London', 'gender': 'Male'}
Delete elements of a Dictionary
There are several methods for removing elements from a dictionary:
- pop() – deletes specified key and its value in the dictionary.
- popitem() – deletes last key-value pair of the dictionary. Please note that the dictionary is an unordered data container, hence last key-value pair is not defined.
- clear() – deletes all key-value pairs of the dictionary.
- del – deletes a key-value pair of a dictionary. can be used to delete the dictionary itself.
The following example shows how to utilise the dictionary’s pop() and popitem() functions.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info.pop("city")
print(Info)
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info.popitem()
print(Info)
The above code will give the following output:
{'name': 'John', 'age': 25}
{'age': 25, 'city': 'London'}
The following example shows how to utilise the dictionary’s clear() and del functions.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info.clear()
print(Info)
Info = {
"name": "John",
"age": 25,
"city": "London"
}
del Info["city"]
print(Info)
del Info
print(Info)
The above code will give the following output:
{}
{'name': 'John', 'age': 25}
Traceback (most recent call last):
File "Main.py", line 17, in <module>
print(Info)
NameError: name 'Info' is not defined
Copy Dictionary
Either the = operator or the copy() function can be used to make a dictionary copy.
- = operator: Using dict2 = dict1, a reference of dict1 can be created into dict2. Any change to dict1 will be reflected in dict2 also.
- copy(): This will create an independent copy of a dictionary.
Info = {
"name": "John",
"age": 25,
"city": "London"
}
Info_1 = Info
Info_2 = Info.copy()
# Info_1 dictionary is a reference of Info
print(Info_1)
# Info_2 dictionary is a copy of Info
print(Info_2,"\n")
#deletes city key from the dictionary
Info.pop("city")
# displaying result after operation
print(Info_1)
print(Info_2)
The output of the above code will be:
{'name': 'John', 'age': 25, 'city': 'London'}
{'name': 'John', 'age': 25, 'city': 'London'}
{'name': 'John', 'age': 25}
{'name': 'John', 'age': 25, 'city': 'London'}
