A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos realizar una suma de tuplas entre todas las tuplas en la lista. Esto puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso combinations()
de la comprensión de listas +
Este problema se puede resolver mediante combinaciones de las funciones anteriores. En esto, usamos combinaciones() para generar todas las combinaciones posibles entre tuplas y la comprensión de listas se usa para alimentar la lógica de suma.
# Python3 code to demonstrate working of # Summation combination in tuple lists # Using list comprehension + combinations from itertools import combinations # initialize list test_list = [(2, 4), (6, 7), (5, 1), (6, 10)] # printing original list print("The original list : " + str(test_list)) # Summation combination in tuple lists # Using list comprehension + combinations res = [(b1 + a1, b2 + a2) for (a1, a2), (b1, b2) in combinations(test_list, 2)] # printing result print("The Summation combinations are : " + str(res))
The original list : [(2, 4), (6, 7), (5, 1), (6, 10)] The Summation combinations are : [(8, 11), (7, 5), (8, 14), (11, 8), (12, 17), (11, 11)]
Método #2: Usar la comprensión de listas +zip() + operator.add + combinations()
Las combinaciones de los métodos anteriores también pueden resolver este problema. En esto, realizamos la tarea de sumar usando add() y los elementos indexados similares se vinculan usando zip().
# Python3 code to demonstrate working of # Summation combination in tuple lists # Using list comprehension + zip() + operator.add + combinations() from itertools import combinations import operator # initialize list test_list = [(2, 4), (6, 7), (5, 1), (6, 10)] # printing original list print("The original list : " + str(test_list)) # Summation combination in tuple lists # Using list comprehension + zip() + operator.add + combinations() res = [(operator.add(*a), operator.add(*b))\ for a, b in (zip(y, x) for x, y in combinations(test_list, 2))] # printing result print("The Summation combinations are : " + str(res))
The original list : [(2, 4), (6, 7), (5, 1), (6, 10)] The Summation combinations are : [(8, 11), (7, 5), (8, 14), (11, 8), (12, 17), (11, 11)]
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