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