Dada una lista, la tarea es escribir un programa de Python para convertirlo en una lista anidada superpuesta personalizada basada en el tamaño del elemento y el paso de superposición.
Ejemplos:
Entrada: test_list = [3, 5, 6, 7, 3, 9, 1, 10], paso, tamaño = 2, 4
Salida: [[3, 5, 6, 7], [6, 7, 3, 9], [3, 9, 1, 10], [1, 10]]
Explicación: las filas se cortaron para el tamaño 4 y la superación comenzó después de 2 elementos de la fila actual.
Entrada: test_list = [3, 5, 6, 7, 3, 9, 1, 10], paso, tamaño = 2, 3
Salida: [[3, 5, 6], [6, 7, 3], [3, 9, 1], [1, 10]]
Explicación: las filas se cortaron para el tamaño 3 y la superación comenzó después de 2 elementos de la fila actual.
Método n.º 1: usar la división de listas + bucle
En esto, el tamaño de la fila se administra mediante la operación de corte y el paso de superposición se administra mediante el paso mencionado en range() mientras se usa un bucle para la iteración.
Python3
# Python3 code to demonstrate working of # Convert List to custom overlapping Matrix # Using list slicing + loop # initializing list test_list = [3, 5, 6, 7, 3, 9, 1, 10] # printing original list print("The original list is : " + str(test_list)) # initializing step, size step, size = 2, 4 res = [] for idx in range(0, len(test_list), step): # slicing list res.append(test_list[idx: idx + size]) # printing result print("The created Matrix : " + str(res))
Producción:
La lista original es: [3, 5, 6, 7, 3, 9, 1, 10]
La array creada: [[3, 5, 6, 7], [6, 7, 3, 9], [3, 9, 1, 10], [1, 10]]
Método #2: Usar la comprensión de listas
En esto, se usa una funcionalidad similar a la del método anterior con una variación de tener taquigrafía usando comprensión de lista.
Python3
# Python3 code to demonstrate working of # Convert List to custom overlapping Matrix # Using list comprehension # initializing list test_list = [3, 5, 6, 7, 3, 9, 1, 10] # printing original list print("The original list is : " + str(test_list)) # initializing step, size step, size = 2, 4 # list comprehension used as shorthand to solve problem res = [test_list[idx: idx + size] for idx in range(0, len(test_list), step)] # printing result print("The created Matrix : " + str(res))
Producción:
La lista original es: [3, 5, 6, 7, 3, 9, 1, 10]
La array creada: [[3, 5, 6, 7], [6, 7, 3, 9], [3, 9, 1, 10], [1, 10]]
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