Programa de Python para convertir una lista en array con el tamaño de cada fila aumentando en un número

Dada una lista y un número N, la tarea aquí es escribir un programa de Python para convertirlo en una array donde cada fila tiene N elementos más que los elementos de la fila anterior de la lista.

Entrada: lista_prueba = [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1], N = 3

Salida: [[4, 6, 8], [4, 6, 8, 1, 2, 9], [4, 6, 8, 1, 2, 9, 0, 10, 12], [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]]

Explicación : cada fila tiene 3 elementos más que la fila anterior.

Entrada: lista_prueba = [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1], N = 4

Salida: [[4, 6, 8, 1], [4, 6, 8, 1, 2, 9, 0, 10], [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]]

Explicación: cada fila tiene 4 elementos más que la fila anterior.

Método 1: Usando loop y rebanando

En esto, realizamos la tarea de obtener fragmentos mediante el corte, y la conversión de la lista en Matrix se realiza mediante el bucle.

Programa:

Python3

# initializing list
test_list = [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing N
N = 3
  
res = []
for idx in range(0, len(test_list) // N):
  
    # getting incremented chunks
    res.append(test_list[0: (idx + 1) * N])
  
# printing result
print("Constructed Chunk Matrix : " + str(res))

Producción:

La lista original es: [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]

Array de fragmentos construidos: [[4, 6, 8], [4, 6, 8, 1, 2, 9], [4, 6, 8, 1, 2, 9, 0, 10, 12], [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]]

Método 2: usar la comprensión de listas y el corte de listas 

En esto, realizamos la tarea de establecer valores utilizando la comprensión de listas como abreviatura. Resto todas las operaciones se realizan de manera similar al método anterior.

Programa:

Python3

# initializing list
test_list = [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing N
N = 3
  
# getting incremented chunks
# using list comprehension as shorthand
res = [test_list[0: (idx + 1) * N] for idx in range(0, len(test_list) // N)]
  
# printing result
print("Constructed Chunk Matrix : " + str(res))

Producción:

La lista original es: [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]

Array de fragmentos construidos: [[4, 6, 8], [4, 6, 8, 1, 2, 9], [4, 6, 8, 1, 2, 9, 0, 10, 12], [4, 6, 8, 1, 2, 9, 0, 10, 12, 3, 9, 1]]

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 *