2017-08-09 8 views
0

には、私はこの代替(I = 0、J = 10; iが<jの、iはj-- ++)パイソン

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

なぜ '= [マイリストでない場合は '+ - ' でX X用X]マイリスト'? – khelwood

+0

そして、 "is"を使ってintを比較する習慣に陥ることはありません。ときどき動作しますが、実装の最適化としてのみです。 Saveは、Noneまたは他の定義されたシングルトン(組み込み関数または独自のもの)との比較のためのものです。 – PaulMcG

答えて

1

あなたが繰り返しているリストから削除することは、ほとんど決して良い考えではありません。あなたのリストが縮小している間にあなたのカウンターが増えます。

pythonでは、リスト自体の項目をループし、インデックス上ではループしないことが望ましいです。

あなたとあなたの問題を解決することができlist-comprehension

res = [c for c in mylist if c not in '+-'] 
関連する問題