2017-08-09 50 views
0

我尝试这样替代该环中下的(I = 0,J = 10; I <焦耳;我++,j--)在python

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()这个变量吗?

+0

为什么不'MYLIST = [X为X在MYLIST如果x不在 '+ - ']'? – khelwood

+0

不要养成使用“is”来比较ints的习惯;有时会起作用,但仅作为实施优化。保存“是”用于与None或其他定义的单例(内置或您自己的)进行比较。 – PaulMcG

回答

1

从列表中删除你正在迭代几乎不是一个好主意。你的计数器增加,而你的名单缩小。

在python中,最好是遍历列表本身的项目而不是索引。

,你可以用解决您的问题list-comprehension

res = [c for c in mylist if c not in '+-'] 
相关问题