Muchas veces tenemos este caso de uso particular en el que necesitamos repetir el elemento alternativo 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 sola línea y, por lo tanto, reducir las líneas de códigos y mejorar la legibilidad del código.
# Python3 code to demonstrate # Alternate Element Repetition # 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 # Alternate Element Repetition res = [ele for idx, ele in enumerate(test_list) for i in range(K) if idx % 2 == 0] # printing result print("The list after alternate repeating elements : " + str(res))
The original list : [4, 5, 6] The list after alternate repeating elements : [4, 4, 4, 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 # Alternate Element Repetition # 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() # Alternate Element Repetition res = list(itertools.chain.from_iterable(itertools.repeat(ele, K) for idx, ele in enumerate(test_list) if idx % 2 == 0)) # printing result print("The list after alternate repetition elements : " + str(res))
The original list : [4, 5, 6] The list after alternate repeating elements : [4, 4, 4, 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