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

      edit
      close

      play_arrow

      link
      brightness_4
      code

      # 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 splited 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)

      chevron_right

      
      

      Output:

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


      My Personal Notes arrow_drop_up

      Experienced Software Engineer with a demonstrated history of working in the information technology and services industry Skilled in Big Data technologies, Data Structures, Algorithm, Software Development, App Development, Databases, Python, Java, C, and WordPress

      If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

      Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




      Article Tags :
      Practice Tags :


      Be the First to upvote.


      Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.