Python | Obtenga la suma de las tuplas que tienen el mismo primer valor

Dada una lista de tuplas, la tarea es sumar las tuplas que tienen el mismo primer valor.

Ejemplos:

Input: [(1, 13), (2, 190), (3, 82), (1, 12)]
Output: [(1, 25), (2, 190), (3, 82)]

Input: [(1, 13), (1, 190), (3, 25), (1, 12)]
Output: [(1, 215), (3, 25)]

 
Analicemos las diferentes formas en que podemos hacer esta tarea.

Método #1: Usarmap()

# Python code to get sum of tuples having same first value
  
# Initialisation of list of tuple
Input = [(1, 13), (1, 190), (3, 25), (1, 12)]
  
d = {x:0 for x, _ in Input}
  
for name, num in Input: d[name] += num
  
# using map
Output = list(map(tuple, d.items()))
  
# printing output
print(Output)
Producción:

[(1, 215), (3, 25)]

 
Método #2: Usardefaultdict

# Python code to sum list of tuples having same first value
  
# Importing
from collections import defaultdict
  
# Initialisation of list of tuple
Input = [(2, 190), (1, 13), (1, 12), 
         (2, 14), (3, 82), (1, 70)]
  
# Initialisation of defaultdict
output = defaultdict(int)
  
for k, v in Input:
    output[k] += v
  
# Printing output
print(list(output.items()))
Producción:

[(1, 95), (2, 204), (3, 82)]

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *