Python 3.x python中(i=0,j=10;i<;j;i+;+;,j--)的C循环的替代方法
我试过这个Python 3.x python中(i=0,j=10;i<;j;i+;+;,j--)的C循环的替代方法,python-3.x,Python 3.x,我试过这个 mylist=['+','-','+','-'] for i in range(0,len(mylist)-1): k=ord(mylist[i]) if(k is ord("+")or(k is ord("-"))): del mylist[i] i=0 但它在一次迭代后退出 我想每次都从头到尾搜索 所以我们可以在range()中传递变量吗?从您迭代的列表中删除几乎从来都不是一个好主意。当列表缩小时,计数器增加 在pyth
mylist=['+','-','+','-']
for i in range(0,len(mylist)-1):
k=ord(mylist[i])
if(k is ord("+")or(k is ord("-"))):
del mylist[i]
i=0
但它在一次迭代后退出
我想每次都从头到尾搜索所以我们可以在
range()
中传递变量吗?从您迭代的列表中删除几乎从来都不是一个好主意。当列表缩小时,计数器增加
在python中,最好在列表项本身上循环,而不是在索引上循环
您可以通过以下方法解决您的问题:
为什么不
mylist=[x代表mylist中的x,如果x不在'+-']
?并且不要养成使用“is”比较int的习惯;有时它是有效的,但只是作为一种实现优化。保存“是”用于与无或其他定义的单例(内置或您自己的)进行比较。
res = [c for c in mylist if c not in '+-']