Open In App

Map function and Dictionary in Python to sum ASCII values

We are given a sentence in the English language(which can also contain digits), and we need to compute and print the sum of ASCII values of the characters of each word in that sentence.

Examples:

Input :  GeeksforGeeks, a computer science portal
for geeks
Output : Sentence representation as sum of ASCII
each character in a word:
1361 97 879 730 658 327 527
Total sum -> 4579
Here, [GeeksforGeeks, ] -> 1361, [a] -> 97, [computer]
-> 879, [science] -> 730 [portal] -> 658, [for]
-> 327, [geeks] -> 527

Input : I am a geek
Output : Sum of ASCII values:
73 206 97 412
Total sum -> 788

This problem has an existing solution please refer to Sums of ASCII values of each word in a sentence link. We will solve this problem quickly in python using map() function and Dictionary data structures. Approach is simple.




# Function to find sums of ASCII values of each
# word in a sentence in
 
def asciiSums(sentence):
 
    # split words separated by space
    words = sentence.split(' ')
 
    # create empty dictionary
    result = {}
 
    # calculate sum of ascii values of each word
    for word in words:
         currentSum = sum(map(ord,word))
 
         # map sum and word into resultant dictionary
         result[word] = currentSum
 
    totalSum = 0
 
    # iterate list of splitted words in order to print
    # sum of ascii values of each word sequentially
    sumsOfAscii = [result[word] for word in words]
    print ('Sum of ASCII values:')
    print (' '.join(map(str,sumsOfAscii)))
    print ('Total Sum -> ',sum(sumsOfAscii))
 
# Driver program
if __name__ == "__main__":
    sentence = 'I am a geek'
    asciiSums(sentence)

Output:

Sum of ASCII values:
1361 97 879 730 658 327 527
Total sum -> 4579


Article Tags :