2017-08-09 51 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 '+-'] 
相關問題