Este artículo en particular resuelve un problema muy específico en el que necesitamos insertar cada elemento alternativo como el patrón de tamaño aumentado del elemento repetido para formar un patrón. Esto puede tener una utilidad en proyectos demostrativos. Vamos a discutir ciertas formas en que esto se puede hacer.
Método n.º 1: usar la comprensión de lista +enumerate()
la comprensión de lista con la ayuda de la función enumerar se puede usar para realizar esta tarea particular en la que usamos la tupla que aumenta su longitud en cada elemento alternativo para la inserción usando la función enumerar.
# Python3 code to demonstrate # increasing alternate element pattern # using list comprehension + enumerate() # initializing list test_list = [1, 2, 3, 4, 5] # printing original list print("The original list : " + str(test_list)) # using list comprehension + enumerate() # increasing alternate element pattern res = [j for sub in ((i, '*' * k) for k, i in enumerate(test_list, 1)) for j in sub] # print result print("The increasing element pattern list : " + str(res))
The original list : [1, 2, 3, 4, 5] The increasing element pattern list : [1, '*', 2, '**', 3, '***', 4, '****', 5, '*****']
Método #2: Usaritertools.chain.from_iterable() + zip()
Esta tarea se puede realizar de manera eficiente usando las funciones anteriores. La función zip intercala las strings formadas usando la multiplicación de strings con las listas y la función from_iterable hace la tarea de aplanar las tuplas obtenidas.
# Python3 code to demonstrate # increasing alternate element pattern # using itertools.chain.from_iterable() + zip() import itertools # initializing list test_list = [1, 2, 3, 4, 5] # printing original list print("The original list : " + str(test_list)) # using itertools.chain.from_iterable() + zip() # increasing alternate element pattern res = list(itertools.chain.from_iterable( zip(test_list, ("*" * (i + 1) for i in range(len(test_list)))))) # print result print("The increasing element pattern list : " + str(res))
The original list : [1, 2, 3, 4, 5] The increasing element pattern list : [1, '*', 2, '**', 3, '***', 4, '****', 5, '*****']
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