Dada una array cuadrada de dimensión N*N, la tarea es escribir un programa en Python para eliminar la primera diagonal.
Ejemplos:
Entrada: lista_prueba = [[5, 3, 3, 2, 1], [5, 6, 7, 8, 2], [9, 3, 4, 6, 7], [0, 1, 2, 3, 5], [2, 5, 4, 3, 5]]
Salida: [[3, 3, 2, 1], [5, 7, 8, 2], [9, 3, 6, 7], [0, 1, 2, 5], [2, 5, 4, 3]]
Explicación: se eliminaron 5, 6, 4, 3, 5 de las listas, 1.ª diagonal.
Entrada: lista_prueba = [[5, 3, 3, 2], [5, 6, 7, 8], [9, 3, 4, 6], [0, 1, 2, 3]]
Salida: [[3, 3, 2], [5, 7, 8], [9, 3, 6], [0, 1, 2]]
Explicación: se eliminaron 5, 6, 4, 3 de las listas, primeras diagonales.
Método 1: usar bucle y enumerar()
En esto, iteramos a través de cada fila usando el bucle y comparamos el índice del elemento con el número de fila, si se encuentra igual, se omite el elemento.
Programa:
Python3
# initializing list test_list = [[5, 3, 3, 2, 1], [5, 6, 7, 8, 2], [ 9, 3, 4, 6, 7], [0, 1, 2, 3, 5], [2, 5, 4, 3, 5]] # printing original list print("The original list is : " + str(test_list)) res = [] for idx, ele in enumerate(test_list): # removing element whose index is equal to row index res.append([el for idxx, el in enumerate(ele) if idxx != idx]) # printing result print("Filtered Matrix : " + str(res))
Producción:
La lista original es: [[5, 3, 3, 2, 1], [5, 6, 7, 8, 2], [9, 3, 4, 6, 7], [0, 1, 2, 3 , 5], [2, 5, 4, 3, 5]]
Array filtrada: [[3, 3, 2, 1], [5, 7, 8, 2], [9, 3, 6, 7], [0, 1, 2, 5], [2, 5, 4 , 3]]
Método 2: usar la comprensión de listas y enumerar()
En esto, realizamos la tarea de iteración utilizando la comprensión de listas, proporcionando una solución de línea al método anterior.
Programa:
Python3
# initializing list test_list = [[5, 3, 3, 2, 1], [5, 6, 7, 8, 2], [ 9, 3, 4, 6, 7], [0, 1, 2, 3, 5], [2, 5, 4, 3, 5]] # printing original list print("The original list is : " + str(test_list)) # list comprehension to perform task as one liner res = [[el for idxx, el in enumerate(ele) if idxx != idx] for idx, ele in enumerate(test_list)] # printing result print("Filtered Matrix : " + str(res))
Producción:
La lista original es: [[5, 3, 3, 2, 1], [5, 6, 7, 8, 2], [9, 3, 4, 6, 7], [0, 1, 2, 3 , 5], [2, 5, 4, 3, 5]]
Array filtrada: [[3, 3, 2, 1], [5, 7, 8, 2], [9, 3, 6, 7], [0, 1, 2, 5], [2, 5, 4 , 3]]
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