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