Python | Extract a list of points from a string



Method # 1: Using the comprehension list + ord()
A combination of the above functions can be used to accomplish this task. In this we are doing the task of iterating over an element using a list comprehension, and ord () is checking the index of the list to be returned.

# Python3 code to demonstrate how it works
# Extract points list from string
# using list comprehension + ord ()

 
# initialize list and string

test_list = [ 3 , 4 , 5 , 7 , 5 , 8 , 1 , 5 , 7 , 10 ,

6 , 7 , 9 , 11 , 3 , 1 , 3 , 6 , 7 , 9 ,

7 , 4 , 6 , 4 , 2 , 1 ]

 

test_str = "pythonengineering"

 
# print original list and line

print ( "The original list:" + str (test_list))

print ( "The original string:" + str (test_s tr))

 
# Extract points list from string
# using list comprehension + ord ()

res = [test_list [ ord (ele) - 97 ] for ele in test_str]

 
# print result

print ( "The Score list is:" + str (res))

Logout:

The original list: [3, 4, 5, 7, 5, 8, 1, 5, 7, 10, 6, 7, 9, 11, 3, 1, 3, 6, 7, 9, 7, 4, 6, 4, 2, 1]
The original string: pythonengineering
The Score list is: [1, 5, 5, 6, 7, 8, 3, 6, 1, 5, 5, 6, 7 ]

Method # 2: Using zip () + ascii_lowercase + dict () + list comprehension
Combination of the above functions can also be used to accomplish this task. In this case, the task of attaching a list item score to a character is done with zip (), and a list comprehension is used to output the final result.

# Python3 code to demonstrate how it works
# Extract points list from string
# use comprehension list + zip () + ascii_lowercase + dict ()

import string

 
# initialize list and string

test_list = [ 3 , 4 , 5 , 7 , 5 , 8 , 1 , 5 , 7 , 10 ,

6 , 7 , 9 , 11 , 3 , 1 , 3 , 6 , 7 , 9

7 , 4 , 6 , 4 , 2 , 1 ]

 

test_str = "pythonengineering"

 
# print original list and line

print ( "The original list:" + str (test_list))

print ( "The original string: " + str (test_str))

 
# Extract points list from string
# use comprehension list + zip () + ascii_lowercase + dict ()

temp = dict ( zip (string.ascii_lowercase, test_list))

res = [temp [ele] for ele in test_str]

 
# print result

print ( < code class = "string"> "The Score list is:" + str (res))

Output:

The original list: [3, 4, 5, 7, 5, 8, 1, 5, 7, 10, 6, 7, 9, 11, 3, 1, 3, 6, 7, 9 , 7, 4, 6, 4, 2, 1]
The original string: pythonengineering
The Score list is: [1, 5, 5, 6, 7, 8, 3, 6, 1, 5, 5, 6, 7]