Python | Expansión de lista por K

A veces, necesitamos reducir la longitud de la lista de python, pero otras veces también podemos necesitar aumentar su tamaño y eso también repitiendo cada elemento N veces. Este tipo de utilidad puede venir en programación día a día. Analicemos ciertas formas en que esto se puede lograr.

Método n.º 1: usar la comprensión de listas
Esta tarea se puede realizar usando el método de comprensión de listas, que es solo una versión abreviada del método de ciclo genérico en el que repetimos cada elemento K veces usando la iteración.

# Python3 code to demonstrate
# List extension by K 
# using list comprehension
  
# initializing list
test_list = [4, 5, 2, 8]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# using list comprehension 
# to extend list 
res = [i for i in test_list for j in range(K)]
  
# printing result
print("The resultant list after extension is : " + str(res))
Producción :

La lista original: [4, 5, 2, 8]
La lista resultante después de la extensión es: [4, 4, 4, 5, 5, 5, 2, 2, 2, 8, 8, 8]

Método #2: Usaritertools.chain() + itertools.tee() + zip()
la combinación de las tres funciones anteriores también puede ayudar a lograr una solución a este problema en particular. La función tee se repite en la lista K veces, anidada en zip que vincula la iteración con un elemento en particular y la función de string realiza esta tarea para todos los elementos.

# Python3 code to demonstrate
# List extension by K 
# using itertools.chain() + itertools.tee() + zip()
from itertools import chain, tee
  
# initializing list
test_list = [4, 5, 2, 8]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K
K = 3
  
# using itertools.chain() + itertools.tee() + zip()
# to extend list 
res = list(chain(*zip(*tee(test_list, K))))
  
# printing result
print("The resultant list after extension is : " + str(res))
Producción :

La lista original: [4, 5, 2, 8]
La lista resultante después de la extensión es: [4, 4, 4, 5, 5, 5, 2, 2, 2, 8, 8, 8]

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 *