Python: convertir la lista en una lista anidada superpuesta personalizada

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

Deja una respuesta

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