Dada una array de tuplas, aplanar a la lista de tuplas con cada tupla representando cada columna.
Entrada : test_list = [[(4, 5), (7, 8)], [(10, 13), (18, 17)]]
Salida : [(4, 7, 10, 18), (5, 8) , 13, 17)]
Explicación : Todos los elementos de número de columna contenidos juntos.Entrada : test_list = [[(4, 5)], [(10, 13)]]
Salida : [(4, 10), (5, 13)]
Explicación : Todos los elementos de número de columna contenidos juntos.
Método n. ° 1: usar la comprensión de listas + zip()
En esto, realizamos la tarea de aplanar usando la comprensión de listas y zip() se usa para realizar el emparejamiento de columnas para representar como pares de tuplas.
Python3
# Python3 code to demonstrate working of # Convert Tuple Matrix to Tuple List # Using list comprehension + zip() # initializing list test_list = [[(4, 5), (7, 8)], [(10, 13), (18, 17)], [(0, 4), (10, 1)]] # printing original list print("The original list is : " + str(test_list)) # flattening temp = [ele for sub in test_list for ele in sub] # joining to form column pairs res = list(zip(*temp)) # printing result print("The converted tuple list : " + str(res))
The original list is : [[(4, 5), (7, 8)], [(10, 13), (18, 17)], [(0, 4), (10, 1)]] The converted tuple list : [(4, 7, 10, 18, 0, 10), (5, 8, 13, 17, 4, 1)]
Método #2: Usar chain.from_iterable() + zip()
En esto, la tarea de aplanar se realiza usando chain.from_iterable() y zip() se usa para realizar la tarea de emparejamiento de columnas.
Python3
# Python3 code to demonstrate working of # Convert Tuple Matrix to Tuple List # Using chain.from_iterable() + zip() from itertools import chain # initializing list test_list = [[(4, 5), (7, 8)], [(10, 13), (18, 17)], [(0, 4), (10, 1)]] # printing original list print("The original list is : " + str(test_list)) # flattening using from_iterable res = list(zip(*chain.from_iterable(test_list))) # printing result print("The converted tuple list : " + str(res))
The original list is : [[(4, 5), (7, 8)], [(10, 13), (18, 17)], [(0, 4), (10, 1)]] The converted tuple list : [(4, 7, 10, 18, 0, 10), (5, 8, 13, 17, 4, 1)]
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