Python | Repite cada elemento K veces en la lista

Muchas veces tenemos este caso de uso particular en el que necesitamos repetir cada elemento de la lista K veces. Se han discutido los problemas de hacer un clon doble, pero este problema se extiende para permitir que una variable flexible defina el número de veces que se debe repetir el elemento. Analicemos ciertas formas en que esto se puede realizar.

Método #1: Uso de la comprensión de listas
Esta tarea en particular requiere generalmente 2 bucles y la comprensión de listas puede realizar esta tarea en particular en una línea y, por lo tanto, reducir las líneas de códigos y mejorar la legibilidad del código.

# Python3 code to demonstrate 
# repeat element K times
# using list comprehension
  
# initializing list of lists
test_list = [4, 5, 6]
  
# printing original list 
print("The original list : " +  str(test_list))
  
# declaring magnitude of repetition
K = 3
  
# using list comprehension
# repeat elements K times
res =  [ele for ele in test_list for i in range(K)]
  
# printing result 
print("The list after adding elements :  " + str(res))
Producción :

The original list : [4, 5, 6]
The list after adding elements :  [4, 4, 4, 5, 5, 5, 6, 6, 6]

Método #2: Usaritertools.chain.from_iterable() + itertools.repeat()
Este problema en particular también se puede resolver usando las funciones incorporadas de Python de la biblioteca itertools. La función de repetición, como su nombre indica, hace la tarea de repetir y agrupar en una lista mediante la función from_iterable.

# Python3 code to demonstrate 
# repeat element K times
# using itertools.chain.from_iterable() + itertools.repeat()
import itertools
  
# initializing list of lists
test_list = [4, 5, 6]
  
# printing original list 
print("The original list : " +  str(test_list))
  
# declaring magnitude of repetition
K = 3
  
# using itertools.chain.from_iterable() 
# + itertools.repeat() repeat elements K times
res = list(itertools.chain.from_iterable(itertools.repeat(i, K)
                                           for i in test_list))
  
# printing result 
print("The list after adding elements :  " + str(res))
Producción :

The original list : [4, 5, 6]
The list after adding elements :  [4, 4, 4, 5, 5, 5, 6, 6, 6]

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 *