Python | Aumente el tamaño de la lista rellenando cada elemento con N

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *