2012-03-17 16 views
26

En Python, ¿cómo puedo eliminar un objeto del conjunto de objetos? Como esto:Eliminar objeto de una lista de objetos en python

x = object() 
y = object() 
array = [x,y] 
# Remove x 

he tratado array.remove() pero sólo funciona con un valor, no una ubicación específica en la matriz. Tengo que ser capaz de eliminar el objeto de hacer frente a su posición (remove array[0])

+5

Eso no es una matriz. –

+2

posible duplicado de [¿Cómo eliminar elemento de la lista en Python?] (Http://stackoverflow.com/questions/2056341/how-to-delete-element-from-list-in-python) – Acorn

Respuesta

4
del array[0] 

donde 0 es el índice del objeto en el list (no hay matriz en pitón)

57

en Python Hay no se usan matrices, listas en su lugar. Hay varias formas de eliminar un objeto de una lista:

my_list = [1,2,4,6,7] 

del my_list[1] # Removes index 1 from the list 
print my_list # [1,4,6,7] 
my_list.remove(4) # Removes the integer 4 from the list, not the index 4 
print my_list # [1,6,7] 
my_list.pop(2) # Removes index 2 from the list 

En su caso el método apropiado a utilizar es pop, ya que lleva el índice a ser eliminado:

x = object() 
y = object() 
array = [x, y] 
array.pop(0) 
# Using the del statement 
del array[0] 
+1

Debe actualizar el segundo parte de su respuesta y haga que use .pop (0) ya que específicamente le pregunta acerca de la eliminación por posición. – redreinard

+1

Editado redreinard, gracias por señalar eso. –

-1

si quiere eliminar el último que acaba de hacer your_list.pop(-1) si quieres quitar la primera your_list.pop(0) o cualquier índice que desea eliminar

1

Si conoce la posición de matriz puede puede pasar en sí mismo. Si está eliminando varios elementos, le sugiero que los elimine en orden inverso.

#Setup array 
array = [55,126,555,2,36] 
#Remove 55 which is in position 0 
array.remove(array[0]) 
Cuestiones relacionadas