Python:根据条目的位置删除列表中的单个条目[重复]

Posted

技术标签:

【中文标题】Python:根据条目的位置删除列表中的单个条目[重复]【英文标题】:Python: Remove a single entry in a list based on the position of the entry [duplicate] 【发布时间】:2016-01-31 07:15:39 【问题描述】:

有没有一种简单的方法可以删除列表中的条目?我只想删除第一个条目。在我看过的每个论坛中,我可以删除一个条目的唯一方法是使用 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 【参考方案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']

【讨论】:

以上是关于Python:根据条目的位置删除列表中的单个条目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥带有单个条目的python列表为-1索引和0索引提供第0个元素? [复制]

FaunaDB - 如何批量更新单个 graphQL 突变中的条目列表?

Dart // Flutter:如何根据条目的内容从列表中删除项目

根据条件删除python集中的条目

删除 pyMongo 列表中的列表条目

从数据条目(如工作表)复制值并将它们粘贴到单个工作表中,根据一个单元格中的某个值连续粘贴