从python中的对象列表中删除对象

时间:2012-03-17 23:32:43

标签: python arrays object

在Python中,如何从对象数组中删除对象?像这样:

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

我尝试了array.remove()但它只适用于值,而不是数组中的特定位置。我需要能够通过寻址其位置(remove array[0]

来删除该对象

7 个答案:

答案 0 :(得分:73)

在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]

答案 1 :(得分:6)

del array[0]

其中0list中对象的索引(python中没有数组)

答案 2 :(得分:5)

如果要从列表中删除多个对象。有多种方法可以从列表中删除对象

试试这段代码。 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] 我希望,它会对你有用

答案 3 :(得分:2)

您可以像这样从数组中删除字符串:

array = ["Bob", "Same"]
array.remove("Bob")

答案 4 :(得分:1)

如果您知道阵列位置,则可以将其传递给自身。如果要删除多个项目,我建议您按相反顺序删除它们。

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

答案 5 :(得分:1)

您可以尝试通过此方法从数组中动态删除对象而无需遍历它吗?其中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}]
>>>

答案 6 :(得分:-1)

如果您想删除最后一个,请执行your_list.pop(-1) 如果你想删除第一个your_list.pop(0)或你想删除的任何索引