Python | Suma de valor de registros selectivos

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))
Producción :

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))
Producción :

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

Deja una respuesta

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