Tags
python
Asked 2 years ago
5 Aug 2021
Views 199
Ceasar

Ceasar posted

What is Defaultdict in Python ?

What is Defaultdict in Python ?
Cimb

Cimb
answered Feb 27 '23 00:00

defaultdict is a class in Python's collections module that provides a default value for non-existent keys in a dictionary . It is a subclass of the built-in dict class and behaves like a regular dictionary, with the added feature of returning a default value for a nonexistent key instead of raising a KeyError exception.

The syntax for creating a defaultdict is as follows:


from collections import defaultdict

my_dict = defaultdict(default_value)

Here, default_value is the default value that will be returned for nonexistent keys. It can be any valid Python object, such as an empty list, an empty set, or a default string.

The default value is specified using a callable, which is a function that takes no arguments and returns the default value. This can be a built-in function, such as int, str, or list, or a custom function that you define yourself.

The main advantage of using a defaultdict over a regular dictionary is that it can simplify code by eliminating the need for checking whether a key exists in the dictionary before accessing or modifying its value. Instead, you can simply access or modify the key and the defaultdict will automatically create the key with the default value if it does not already exist.

Here is an example of using defaultdict to count the frequency of words in a list:



from collections import defaultdict

word_list = ['apple', 'banana', 'cherry', 'apple', 'banana', 'apple']

word_count = defaultdict(int)
for word in word_list:
    word_count[word] += 1

print(word_count)

This will output:


defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'cherry': 1})

In this example, the defaultdict is initialized with a default value of int, which is 0. The for loop iterates through the list of words and increments the count for each word using the += operator. If a word does not already exist in the dictionary, the defaultdict automatically creates a new key with a default value of 0 before incrementing it.
Post Answer