我试图创建一个函数,从列表中删除某个字符(n)的所有示例。这是我的代码:
def removeall(alist,n):
size=len(alist)
for x in range(size):
if x is n:
alist.remove(x)
else:
x = x
这适用于第一个匹配n的项目,但随后它似乎退出了循环,我不明白为什么。例如,如果alist=[1,2,3,1]并且n=1,我希望它返回[2,3],但它会返回[2,3,1]。经过大量测试,它基本上只是删除了第一个匹配n,然后退出,我不知道为什么,我知道我在做一些愚蠢的事情,但我不知道。
我试过使用函数而不是方法,并以不同的方式定义列表,但结果总是一样的。我知道我一定是在方法“alist.remove(x)”上做错了什么,但我不知道如何在它将一个字符匹配到n并删除它之后保持它的迭代。
2条答案
按热度按时间tcomlyy61#
或
remove
方法参数是值而不是索引。当循环应该以相反的顺序进行时删除。qhhrdooz2#
你可以这样做是错误的: