我有一个这样的清单:
['A','B','C']
我需要的是根据函数中的输入删除一个元素。例如,如果我决定删除A,它应该返回:
['B','C']
我尝试没有成功
list = ['A','B','C']
[var for var in list if list[var] != 'A']
我该怎么办? 感谢
答案 0 :(得分:11)
简单lst.remove('A')
将起作用:
>>> lst = ['A','B','C']
>>> lst.remove('A')
['B', 'C']
但是,对.remove
的一次调用只会删除列表中{em} {<1>}的次次。要删除所有'A'
值,您可以使用循环:
'A'
如果您坚持使用列表理解,可以使用
for x in range(lst.count('A')):
lst.remove('A')
上述内容将删除等于>>> [x for x in lst if x != 'A']
['B', 'C']
的所有元素。
答案 1 :(得分:5)
对代码的改进(几乎是正确的)将是:
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]
答案 2 :(得分:1)
您可以使用列表的remove
方法。只需list.remove('A')
即可删除。
如果您要删除项目的索引,请使用pop
方法。 list.pop(0)
。
答案 3 :(得分:0)
如果您不确定该元素是否存在,您可能需要在删除之前进行检查:
if 'A' in lst:
lst.remove('A')
答案 4 :(得分:0)
找到此简化代码:
list1 = [12,24,35,24,88,120,155]
while 24 in list1:
list1.remove(24)
print(list1)
祝你好运!
答案 5 :(得分:0)
您真的很亲密:
---------------------------------------------------------------------
| FirstName |Amount| PostalCode | LastName | AccountNumber |
---------------------------------------------------------------------
| John | 100 | 112334 | Smith | 123456 |
---------------------------------------------------------------------
您尝试使用要求索引值的语法来引用列表项。
答案 6 :(得分:0)
originalList=['A','B','C']
print([val for val in originalList if val!='A'])
这个打印
['B', 'C']