A veces, mientras trabajamos con tuplas de Python, podemos tener un problema en el que necesitamos realizar la concatenación de tuplas de valores individuales, para convertirlas en grupos de mayor tamaño. Este tipo de problema puede ocurrir en el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [(3, ), (6, ), (8, ), (2, ), (9, ), (4, ), (7, ), (1, )], K = 4
Salida : [(3, 6, 8, 2), (9, 4, 7, 1)]
Entrada : test_list = [(3, ), (6, ), (8, ), (2, ), (9, ), (4, ), (7, ), (1, )], K = 2
Salida : [(3, 6), (8, 2), (9, 4), (7, 1)]
Método #1: Usar zip() + comprensión de lista
La combinación de las funciones anteriores se puede usar para resolver este problema. En este, realizamos la tarea de formar grupos usando zip() y la construcción de valores usando la comprensión de listas. El tamaño de K solo puede limitarse a 2.
Python3
# Python3 code to demonstrate working of # K length Concatenate Single Valued Tuple # Using zip() + list comprehension # initializing lists test_list = [(3, ), (6, ), (8, ), (2, ), (9, ), (4, )] # printing original list print("The original list is : " + str(test_list)) # K length Concatenate Single Valued Tuple # Using zip() + list comprehension res = [a + b for a, b in zip(test_list[::2], test_list[1::2])] # printing result print("Concatenated tuples : " + str(res))
The original list is : [(3, ), (6, ), (8, ), (2, ), (9, ), (4, )] Concatenated tuples : [(3, 6), (8, 2), (9, 4)]
Método #2: Usar zip_longest() + chain.from_iterables()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de concatenación usando zip_longest() y chain.from_iterables() se usa para aplanar tuplas para listar elementos antes de la concatenación.
Python3
# Python3 code to demonstrate working of # K length Concatenate Single Valued Tuple # Using zip_longest() + chain.from_iterables() from itertools import chain, zip_longest # initializing lists test_list = [(3, ), (6, ), (8, ), (2, ), (9, ), (4, )] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 # K length Concatenate Single Valued Tuple # Using zip() + list comprehension temp = [iter(chain.from_iterable(test_list))] * K res = list(zip_longest(*temp)) # printing result print("Concatenated tuples : " + str(res))
The original list is : [(3, ), (6, ), (8, ), (2, ), (9, ), (4, )] Concatenated tuples : [(3, 6, 8), (2, 9, 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