Programa de Python para eliminar los primeros elementos diagonales de una array cuadrada

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

Deja una respuesta

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