Open In App

Python – Dictionary values String Length Summation

Last Updated : 27 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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




# 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




# 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




# 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:

  • Import the reduce() function from the functools module.
  • Initialize the dictionary test_dict.
  • Print the original dictionary.
  • Use the reduce() function along with a lambda function to iterate through the values of the dictionary and add up the lengths of the values.
  • Print the result.

Python3




# 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.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads