A veces, al usar la lista de tuplas, nos encontramos con un problema en el que tenemos cierta lista de claves y solo necesitamos la suma de los valores de esas claves de la lista de tuplas. Esto tiene una utilidad en la calificación o suma de entidades específicas. Vamos a discutir ciertas formas en que esto se puede hacer.
Método n.° 1: Uso dict() + sum() + get()
de la comprensión de listas +
Podemos realizar esta tarea en particular primero, convirtiendo la lista en el diccionario y luego empleando la comprensión de listas para obtener el valor de claves específicas usando la función get. La suma de valores se realiza mediante sum().
# Python3 code to demonstrate # Selective Records Value Summation # using dict() + get() + list comprehension + sum() # initializing list of tuples test_list = [('Nikhil', 1), ('Akash', 2), ('Akshat', 3), ('Manjeet', 4)] # initializing selection list select_list = ['Nikhil', 'Akshat'] # printing original list print ("The original list is : " + str(test_list)) # printing selection list print ("The selection list is : " + str(select_list)) # using dict() + get() + list comprehension + sum() # Selective Records Value Summation temp = dict(test_list) res = sum([temp.get(i, 0) for i in select_list]) # printing result print ("The selective values summation of keys : " + str(res))
The original list is : [('Nikhil', 1), ('Akash', 2), ('Akshat', 3), ('Manjeet', 4)] The selection list is : ['Nikhil', 'Akshat'] The selective values summation of keys : 4
Método n.º 2: Uso next() + sum()
de la comprensión de listas +
Este problema en particular se puede resolver mediante la siguiente función, que realiza la iteración mediante los iteradores y, por lo tanto, es una forma más eficiente de lograr una posible solución. La suma de valores se realiza mediante sum().
# Python3 code to demonstrate # Selective Records Value Summation # using next() + list comprehension + sum() # initializing list of tuples test_list = [('Nikhil', 1), ('Akash', 2), ('Akshat', 3), ('Manjeet', 4)] # initializing selection list select_list = ['Nikhil', 'Akshat'] # printing original list print ("The original list is : " + str(test_list)) # printing selection list print ("The selection list is : " + str(select_list)) # using next() + list comprehension + sum() # Selective Records Value Summation res = sum([next((sub[1] for sub in test_list if sub[0] == i), 0) for i in select_list]) # printing result print ("The selective values summation of keys : " + str(res))
The original list is : [('Nikhil', 1), ('Akash', 2), ('Akshat', 3), ('Manjeet', 4)] The selection list is : ['Nikhil', 'Akshat'] The selective values summation of keys : 4
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