Dada una lista y un número entero N, escriba un programa en Python para aumentar el tamaño de la lista rellenando cada elemento con N.
Ejemplos:
Input : lst = [1, 2, 3] N = 3 Output : [1, 1, 1, 2, 2, 2, 3, 3, 3] Input : lst = ['cats', 'dogs'] N = 2 Output : ['cats', 'cats', 'dogs', 'dogs']
Enfoque #1: Comprensión de listas
# Python3 program to increase list size # by padding each element by N def increaseSize(lst, N): return [el for el in lst for _ in range(N)] # Driver code lst = [1, 2, 3] N = 3 print(increaseSize(lst, N))
Producción:
[1, 1, 1, 2, 2, 2, 3, 3, 3]
Enfoque n.º 2:functools.reduce()
método de uso
La función reduce aplica una función particular pasada en su argumento a todos los elementos de la lista. Por lo tanto, en este enfoque aplicamos una función en cada elemento donde su ocurrencia se multiplica por N.
# Python3 program to increase list size # by padding each element by N from functools import reduce def increaseSize(lst, N): return reduce(lambda x, y: x + y, [[el]*N for el in lst]) # Driver code lst = [1, 2, 3] N = 3 print(increaseSize(lst, N))
Producción:
[1, 1, 1, 2, 2, 2, 3, 3, 3]
Enfoque #3: Usar itertools.chain()
# Python3 program to increase list size # by padding each element by N from itertools import chain def increaseSize(lst, N): return list(chain(*([el]*N for el in lst))) # Driver code lst = [1, 2, 3] N = 3 print(increaseSize(lst, N))
Producción:
[1, 1, 1, 2, 2, 2, 3, 3, 3]
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA