Python | Aumento del patrón de elementos alternativos en la lista

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *