Programa de Python para encontrar la suma de los valores de caracteres ascii en la lista de strings

Dada la lista de strings, la tarea es escribir un programa Python para calcular el valor de suma del valor ASCII de cada carácter.

Ejemplos:

Entrada : test_list = [“geeksforgeeks”, “teaches”, “discipline”] 
Salida : [133, 61, 100] 
Explicación : Carácter posicional sumado para obtener los valores requeridos.

Entrada : test_list = [“geeksforgeeks”, “disciplina”] 
Salida : [133, 100] 
Explicación : Carácter posicional sumado para obtener los valores requeridos. 

Método 1: Usar ord() + bucle

En esto, iteramos cada carácter en cada string y seguimos agregando valores posicionales para obtener su suma. El valor sumado se agrega al resultado en una lista.

Python3

# Python3 code to demonstrate working of
# Characters Positions Summation in String List
# Using ord() + loop
 
# initializing list
test_list = ["geeksforgeeks",
             "teaches", "us", "discipline"]
 
# printing original list
print("The original list is : " + str(test_list))
 
res = []
for sub in test_list:
    ascii_sum = 0
     
    # getting ascii value sum
    for ele in sub :
        ascii_sum += (ord(ele) - 96)
         
    res.append(ascii_sum)
 
# printing result
print("Position Summation List : " + str(res))

Producción:

La lista original es: [‘geeksforgeeks’, ‘teaches’, ‘us’, ‘discipline’] Lista de resumen de posición: [133, 61, 40, 100]

Método 2: usar la comprensión de listas + sum() + ord()

En esto, obtenemos la suma usando sum(), ord() se usa para obtener el valor posicional ASCII, y la comprensión de listas ofrece una solución de una sola línea para este problema.

Python3

# Python3 code to demonstrate working of
# Characters Positional Summation in String List
# Using list comprehension + sum() + ord()
 
# initializing list
test_list = ["geeksforgeeks", "teaches",
             "us", "discipline"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# sum() gets summation, list comprehension
# used to perform task in one line
res = [sum([ord(ele) - 96 for ele in sub]) for sub in test_list]
 
# printing result
print("Positional Summation List : " + str(res))

 Producción:

La lista original es: [‘geeksforgeeks’, ‘teaches’, ‘us’, ‘discipline’] Lista de resumen de posición: [133, 61, 40, 100]

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad de Tiempo : O(n 2 )
Espacio Auxiliar : O(n)

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *