【问题标题】:Python: Remove a single entry in a list based on the position of the entry [duplicate]Python:根据条目的位置删除列表中的单个条目[重复]
【发布时间】:2023-04-01 13:05:02
【问题描述】:

有没有一种简单的方法可以删除列表中的条目?我只想删除第一个条目。在我看过的每个论坛中,我可以删除一个条目的唯一方法是使用 list.remove() 函数。这将是完美的,但如果我知道它的名称,我只能删除该条目。

    list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha']
    list.remove(0)

这不起作用,因为您只能根据其名称删除条目。我必须运行list.remove('hey')。在这种特殊情况下,我不能这样做。

如果您需要任何其他信息,请询问。

【问题讨论】:

  • 只要使用list.pop(0)
  • 您只是删除第一个条目吗? .pop() 可以给你。或者您是否需要删除列表中的随机单个条目,例如可以是 [0] 或 [3] 等?
  • list.remove(list.index('hey'))
  • 即使你只能通过内容删除一个项目,你也知道它的内容:它是list[0]。因此,如果您想使用remove 删除第一个项目,那就是list.remove(list[0])。但不要那样做,使用pop()del

标签: python list variables


【解决方案1】:

您可以尝试以下方法:

>>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha']
>>> del my_list[0]
>>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha']
>>> if 'hey' in my_list:     # you're looking for this one I think
...     del my_list[my_list.index('hey')]
... 
>>> my_list
['hi', 'hello', 'phil', 'zed', 'alpha']

你也可以使用filter:

 my_list = filter(lambda x: x!='hey', my_list)

使用list comprehension

my_list = [ x for x in my_list if x!='hey']

【讨论】:

    【解决方案2】:

    首先,永远不要称某事物为“列表”,因为它破坏了内置类型“列表”。其次,这是你的答案:

    >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha']
    >>> del my_list[1]
    >>> my_list
    ['hey', 'hello', 'phil', 'zed', 'alpha']
    

    【讨论】:

      【解决方案3】:

      列表使用位置,而不是(或名称,无论你想如何称呼它们)。

      如果您需要命名访问您的数据结构,请考虑改用字典,它允许使用映射到valueskeys 访问其值。

      d = {'hey':0, 'hi':0, 'hello':0, 'phil':0, 'zed':0, 'alpha':0}
      
      del d['hey']
      
      print(d)  # d = {'alpha': 0, 'hello': 0, 'hi': 0, 'phil': 0, 'zed': 0}
      

      否则,您将需要通过获取元素的索引并调用del alist[index]来诉诸基于索引的删除。

      【讨论】:

        【解决方案4】:

        添加到答案投票中......怎么样:

        >>> my_list = ['hey', 'hi', 'hello', 'phil', 'zed', 'alpha']
        >>> my_list=my_list[1:]
        >>> my_list
        ['hi', 'hello', 'phil', 'zed', 'alpha']
        

        【讨论】:

          猜你喜欢
          • 2023-01-11
          • 1970-01-01
          • 1970-01-01
          • 2012-03-20
          • 2022-01-19
          • 2012-08-13
          • 1970-01-01
          • 2020-03-13
          • 2013-03-09
          相关资源
          最近更新 更多