The Python defaultdict() is a container, which is similar to the dictionaries. It is present in the collection module. It is a subclass of the dictionary class which returns a dictionary as object.
The functionality of the both dictionaries and defaultdict are similar, the only difference is the defualtdict does not raise a KeyError. It provides a default value for the key which does not exists.
SyntaxFollowing is a syntax of the Python defaultdict() class −
defaultdict(default_factory)Parameters
Following is the parameters accepted by this class −
This class returns a <collections.defaultdict> object.
ExampleFollowing is an basic example of the Python defaultdict() class −
from collections import defaultdict def default(): return 'Key not found' dic1 = defaultdict(default) dic1[1] = 'one' dic1[2] = 'two' dic1[3] = 'Three' print(dic1) print(dic1[5])
Following is the output of the above code −
defaultdict(<function default at 0x000002040ACC8A40>, {1: 'one', 2: 'two', 3: 'Three'}) Key not foundUsing defaultdict() with __missing__()
The __missing__() method is used to define the behavior of default_factory that is passed as an argument in the defaultdict(). If the default_factory is None this method generates a KeyError.
ExampleFollowing is an example of the defaultdict() with __missing__() method −
from collections import defaultdict def default(): return 'Key not found' #defined defaultdict dic1 = defaultdict(default) dic1[1] = 'Python' dic1[2] = 'Java' dic1[3] = 'C++' print(dic1) #__missing__() function var1 = dic1.__missing__(1) print(var1)
Following is the output of the above code −
defaultdict(<function default at 0x000001F92A5F8A40>, {1: 'Python', 2: 'Java', 3: 'C++'}) Key not foundList as default_factory
In defaultdict(), we can pass the list as a default_factory. When we try to find the value of the key which is not present in the dictionary it will return an empty list.
ExampleHere, we have defined a list of tuple and each tuple containing two values, keys and values. And we have passed the list as argument in the defaultdict() function and appended items into the dictionary −
# Python program to demonstrate # defaultdict from collections import defaultdict s = [('Python', 90), ('Java', 85), ('Python', 75), ('C++', 80), ('Java', 120)] dict1 = defaultdict(list) for k, v in s: dict1[k].append(v) sorted(dict1.items()) print(dict1) print("Key is not present in the dictionary :",dict1['html'])
Following is the output of the above code −
defaultdict(<class 'list'>, {'Python': [90, 75], 'Java': [85, 120], 'C++': [80]}) []Integer Value as default_factory
In defaultdict(), when we can pass int as an argument, it makes the function countable. When we try to find a key which is not present it will return zero.
ExampleHere, we have append the characters into dictionary and when we found the key value which is not present in the dictionary resulted 0 −
from collections import defaultdict var1 = 'Hello' dict1 = defaultdict(int) for k in var1: dict1[k] += 1 sorted(dict1.items()) print(dict1) #Value of key which is not found in dictionary print("Key Value :", dict1['k'])
Following is the output of the above code −
defaultdict(<class 'int'>, {'H': 1, 'e': 1, 'l': 2, 'o': 1}) Key Value : 0
python_modules.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4