Open In App

Python – Dictionary values String Length Summation

Sometimes, while working with Python dictionaries we can have problem in which we need to perform the summation of all the string lengths which as present as dictionary values. This can have application in many domains such as web development and day-day programming. Lets discuss certain ways in which this task can be performed.

Method #1 : Using sum() + generator expression + len() The combination of above functions can be used to perform this task. In this, we compute length using len(), summation using sum() and iteration using generator expression. 






# Python3 code to demonstrate working of
# Dictionary values String Length Summation
# Using sum() + len() + generator expression
from collections import ChainMap
 
# initializing dictionary
test_dict = {'gfg' : '2345',
             'is' : 'abcde',
             'best' : 'qwerty'}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# Dictionary values String Length Summation
# Using sum() + len() + generator expression
res = sum((len(val) for val in test_dict.values()))
     
# printing result
print("The string values length summation : " + str(res))

Output : 

The original dictionary is : {‘is’: ‘abcde’, ‘best’: ‘qwerty’, ‘gfg’: ‘2345’} The string values length summation : 15



Time complexity: O(n), where n is the number of values in the dictionary.
Auxiliary Space: O(1), as the program does not use any additional data structure whose space requirements depend on the size of the input.

Method #2 : Using map() + len() + sum() This performs the task similar to above function. The only difference is that iteration is performed using map() than generator expression. 




# Python3 code to demonstrate working of
# Dictionary values String Length Summation
# Using map() + len() + sum()
 
# initializing dictionary
test_dict = {'gfg' : '2345',
             'is' : 'abcde',
             'best' : 'qwerty'}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# Dictionary values String Length Summation
# Using map() + len() + sum()
res = sum(map(len, test_dict.values()))
     
# printing result
print("The string values length summation : " + str(res))

Output : 

The original dictionary is : {‘is’: ‘abcde’, ‘best’: ‘qwerty’, ‘gfg’: ‘2345’} The string values length summation : 15

Time complexity: O(n), where n is the number of values in the dictionary.
Auxiliary Space: O(1), constant extra space is required

Method 3 : using a for loop:

step-by-step approach :

  1. We initialize a dictionary test_dict with three key-value pairs. The keys are strings and the values are also strings.
  2. We print the original dictionary using the print() function and str() to convert the dictionary to a string.
  3. We initialize a variable res to 0. This variable will store the sum of the lengths of all the string values in the dictionary.
  4. We use a for loop to iterate over all the values in the dictionary. For each value, we compute its length using the len() function and add it to the res variable.
  5. After the loop completes, we print the result using the print() function and str() to convert the integer res to a string.




# Python3 code to demonstrate working of
# Dictionary values String Length Summation
# Using for loop
 
# initializing dictionary
test_dict = {'gfg' : '2345',
             'is' : 'abcde',
             'best' : 'qwerty'}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# Dictionary values String Length Summation
# Using for loop
res = 0
for val in test_dict.values():
    res += len(val)
     
# printing result
print("The string values length summation : " + str(res))

Output
The original dictionary is : {'gfg': '2345', 'is': 'abcde', 'best': 'qwerty'}
The string values length summation : 15

Time complexity: O(n), where n is the number of values in the dictionary.
Auxiliary space: O(1), as we are only using a constant amount of extra space to store the res variable.

Method #4: Using reduce() from functools module

Step-by-Step Approach:




# Python3 code to demonstrate working of
# Dictionary values String Length Summation
# Using reduce()
 
# initializing dictionary
test_dict = {'gfg' : '2345',
             'is' : 'abcde',
             'best' : 'qwerty'}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# Dictionary values String Length Summation
# Using reduce()
from functools import reduce
res = reduce(lambda x, y: x + len(y), test_dict.values(), 0)
 
# printing result
print("The string values length summation : " + str(res))

Output
The original dictionary is : {'gfg': '2345', 'is': 'abcde', 'best': 'qwerty'}
The string values length summation : 15

Time complexity: O(n), where n is the number of values in the dictionary.
Auxiliary space: O(1) as we are not using any extra space.


Article Tags :