Удалить объект из списка объектов в Python - PullRequest
39 голосов
/ 18 марта 2012

Как в Python удалить объект из массива объектов? Как это:

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

Я пробовал array.remove(), но он работает только со значением, а не с определенным местом в массиве. Мне нужно иметь возможность удалить объект, указав его позицию (remove array[0])

Ответы [ 6 ]

74 голосов
/ 18 марта 2012

В python нет массивов, вместо них используются списки. Существует несколько способов удалить объект из списка:

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

В вашем случае подходящий метод - это pop, потому что он требует удаления индекса:

x = object()
y = object()
array = [x, y]
array.pop(0)
# Using the del statement
del array[0]
6 голосов
/ 18 марта 2012
del array[0]

где 0 - индекс объекта в списке (в питоне нет массива)

5 голосов
/ 11 марта 2018

Если вы хотите удалить несколько объектов из списка. Существуют различные способы удаления объекта из списка

Попробуйте этот код. a - список всех объектов, b - список объектов, которые вы хотите удалить.

пример:

a = [1,2,3,4,5,6]
b = [2,3]

for i in b:
   if i in a:
      a.remove(i)

print(a)

вывод [1,4,5,6] Я надеюсь, это будет работать для вас

1 голос
/ 06 марта 2019

Вы можете попробовать это, чтобы динамически удалить объект из массива, не проходя через него? Где e и t - просто случайные объекты.

>>> e = {'b':1, 'w': 2}
>>> t = {'b':1, 'w': 3}
>>> p = [e,t]
>>> p
[{'b': 1, 'w': 2}, {'b': 1, 'w': 3}]
>>>
>>> p.pop(p.index({'b':1, 'w': 3}))
{'b': 1, 'w': 3}
>>> p
[{'b': 1, 'w': 2}]
>>>
1 голос
/ 05 мая 2014

Если вы знаете расположение массива, вы можете передать его в себя. Если вы удаляете несколько элементов, я предлагаю вам удалить их в обратном порядке.

#Setup array
array = [55,126,555,2,36]
#Remove 55 which is in position 0
array.remove(array[0])
0 голосов
/ 01 мая 2013

, если вы хотите удалить последний, просто сделайте your_list.pop(-1), если вы хотите удалить первый your_list.pop(0) или любой индекс, который вы хотите удалить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...