Si tengo una matriz de matrices (una matriz) en python, p.

my_array = [[1,2,3],[4,5,6],[7,8,9],[1,2,3]]

Y me gustaría eliminar todas las instancias de [1,2,3]

new_array = my_array.remove([1,2,3])

Da como resultado nulo. ¿Hay alguna manera de aplicar remove () a las matrices dentro de las matrices de esta manera que funcione, es decir, para que

new_array = [[4,5,6],[7,8,9]]
0
Max 13 jun. 2020 a las 19:52

4 respuestas

La mejor respuesta
my_array = [[1,2,3],[4,5,6],[7,8,9],[1,2,3]]

# you can put your conditions
new_array = [arr for arr in my_array if [1,2,3] != arr]

print(new_array)
1
Mukul Kumar 13 jun. 2020 a las 16:57

El remove() no devuelve ningún valor (devuelve Ninguno). Además, ha definido una lista de lista, no una matriz. Deberías escribirlo de esta manera: -

my_array = [[1,2,3],[4,5,6],[7,8,9],[1,2,3]]
count = my_array.count([1,2,3])  # returns 2
for i in range(count):
    my_array.remove([1,2,3])

print(my_array)

Salida:-

[[4, 5, 6], [7, 8, 9]]
0
Dhaval Taunk 13 jun. 2020 a las 16:56

Puede usar una función loop y remove para obtener el resultado deseado

my_array = [[1,2,3],[4,5,6],[7,8,9],[1,2,3]]

while([1,2,3] in my_array):
    my_array.remove([1,2,3])

print(my_array)
0
Kazi Sohan 13 jun. 2020 a las 16:56
my_array = [[1,2,3],[4,5,6],[7,8,9],[1,2,3]]
[my_array.remove([1,2,3]) for i in range(my_array.count([1,2,3]))]
print(my_array)
0
Balasriharsha Cheeday 13 jun. 2020 a las 17:01