# Map function and Dictionary in Python to sum ASCII values

We are given a sentence of english language(can also contain digits), we need to compute and print the sum of ASCII values of 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 existing solution please refer 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,

1. First split all words in sentence separated by space.
2. Create a empty dictionary which will contain word as key and sum of ASCII values of it’s characters as value.
3. Now traverse list of splitted words and for each word map ord(chr) function on each character of current word and them calculate sum of ascii values of each character of current word.
4. While traversing each word map sum of ascii values on it’s corresponding word in resultant dictionary created above.
5. Traverse splitted list of words and print their corresponding ascii value by looking up into resultant dictionary.
1. ## Python3

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

Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Previous
Next