Python: repetición incremental y cíclica de elementos de lista

A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos repetir elementos K veces. Pero podemos tener variaciones en esto y tener que repetir elementos de forma cíclica e incremental. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n. ° 1: usar bucle + enumerar() 
Esta es una forma de fuerza bruta en la que se puede realizar esta tarea. En esto, iteramos los elementos y realizamos el número requerido de repeticiones utilizando el operador mod y la lógica de multiplicación.
 

Python3

# Python3 code to demonstrate
# Incremental and Cyclic Repetition of List Elements
# using loop + enumerate()
 
# Initializing list
test_list = ['g', 'f', 'g', 'C', 'S']
 
# printing original list
print("The original list is : " + str(test_list))
 
# Initializing range
i, j = 2, 4
 
# Incremental and Cyclic Repetition of List Elements
# using loop + enumerate()
res = []
temp = list(range(i, j + 1))
for idx, ele in enumerate(test_list):
    res.append(ele * temp[idx % len(temp)])
     
# printing result
print ("Repetition List is : " + str(res))
Producción : 

The original list is : ['g', 'f', 'g', 'C', 'S']
Repetition List is : ['gg', 'fff', 'gggg', 'CC', 'SSS']

 

 
Método n.º 2: usar ciclo() + bucle + zip() 
La combinación de estas tareas también se puede usar para realizar esta tarea. En esto, iteramos usando bucle y ciclo y la repetición se realiza usando ciclo().
 

Python3

# Python3 code to demonstrate
# Incremental and Cyclic Repetition of List Elements
# using cycle() + loop + zip()
from itertools import cycle
 
# Initializing list
test_list = ['g', 'f', 'g', 'C', 'S']
 
# printing original list
print("The original list is : " + str(test_list))
 
# Initializing range
i, j = 2, 4
 
# Incremental and Cyclic Repetition of List Elements
# using cycle() + loop + zip()
res = []
for k, l in zip(cycle(range(i, j + 1)), test_list):
    res.append(k * l)
     
# printing result
print ("Repetition List is : " + str(res))
Producción : 

The original list is : ['g', 'f', 'g', 'C', 'S']
Repetition List is : ['gg', 'fff', 'gggg', 'CC', 'SSS']

 

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 *