使用list comprehension-Python删除列表中的元素

2024-04-24 16:38:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张这样的单子:

['A','B','C']

我需要的是根据我在函数中得到的输入删除一个元素。例如,如果我决定删除它,它应该返回:

['B','C']

我没有成功

list = ['A','B','C']
[var for var in list if list[var] != 'A']

我该怎么做? 谢谢


Tags: 函数in元素forifvarlist单子
3条回答

简单的lst.remove('A')将起作用:

>>> lst = ['A','B','C']
>>> lst.remove('A')
['B', 'C']

然而,对.remove的一次调用只会删除列表中'A'的第一次出现。要删除所有'A'值,可以使用循环:

for x in range(lst.count('A')):
    lst.remove('A')

如果你坚持使用列表理解,你可以使用

>>> [x for x in lst if x != 'A']
['B', 'C']

上述操作将删除所有等于'A'的元素。

对代码的改进(几乎是正确的)是:

list = ['A','B','C']
[var for var in list if var != 'A']

然而,@frostnational的方法对于单个值来说是更好的

如果要有一个不允许的值列表,可以按以下方式执行:

list = ['A','B','C', 'D']
not_allowed = ['A', 'B']
[var for var in list if var not in not_allowed]

您可以使用list的remove方法。只要做list.remove('A')它就会被删除。

如果要删除项的索引,请使用pop方法。list.pop(0)

相关问题 更多 >