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))
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))
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