【问题标题】:Remove object from a list of objects in python从python中的对象列表中删除对象
【发布时间】:2012-04-03 00:38:46
【问题描述】:

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

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

我试过array.remove(),但它只适用于一个值,而不是数组中的特定位置。我需要能够通过寻址对象的位置来删除对象(remove array[0])

【问题讨论】:

标签: python arrays object


【解决方案1】:

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

【讨论】:

  • 您应该更新答案的第二部分并让他使用 .pop(0) ,因为他专门询问按位置删除。
  • 当使用 del array[0] 时,从列表中删除`,但 x 本身仍然存在。有没有办法同时删除x(例如通过指针删除x)?
【解决方案2】:
del array[0]

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

【讨论】:

    【解决方案3】:

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

    试试这个代码。 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] 希望对你有用

    【讨论】:

    • link 是什么?
    • else: pass 是多余的。
    • @Rafael 对不起,变量“链接”是我的错误。我只是纠正它。检查 = 我在一个。
    • 是的,使用 else 没问题:通过或否。谢谢你的想法。 @Rafael
    【解决方案4】:

    你可以试试这个从数组中动态删除一个对象而不循环它吗?其中 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}]
    >>>
    

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2014-06-29
            • 2020-11-07
            • 2021-08-03
            • 1970-01-01
            • 2018-07-08
            • 2019-01-25
            • 2020-06-04
            • 2020-04-17
            相关资源
            最近更新 更多