2016-11-22 5 views
0

whileループが真である限り実行される関数を記述する必要があります。このwhileループの条件は、私のリストにゼロがないかもしれないということです。しかし、私のリストにゼロでない要素が含まれていて、他の要素がすべてゼロの場合、これは問題ではありません。 例を挙げます:[0、0、0] - >実行を停止します。 [0、1、0、0、0] - >これは私のコードで実行whileループpythonのすべてのメソッド

を続ける:

while all(char != 0 for char in list): 
list = next(list) 
finallist.append(list) 

(次の私の関数の名前です)

+0

条件はゼロではありませんか?それともゼロだけではない?それは2つの非常に異なるものです。 –

+0

'.index()'を使用しますか? – nicovank

答えて

0
ありがとうゼロから

フィルターリスト:次に

[x for x in your_list if x != 0] 

、フィルタリングされたリストiの長さかどうかを確認0より大きい(または正当な理由、条件に入れて空のリストFalseと非空のリストがされているTrue(S)

while [x for x in your_list if x != 0]: 
    # Do stuff 

編集:私はあなたの質問を再読み込み、そしてあなたは間違っていた場所を見つけますあなたが実際にそのリストは、そのためには0ではありません任意の要素を持っているかどうかを確認する必要がありながらall()を使用して、あなたがany()なくall()を使用し、リストは0ではありませんだけの要素が含まれていることを確認し、

1

矛盾した条件を求めているように見えますが、あなたの例に基づいて、あなたの望むものがあなたのリストに少なくとも1つはないことを信じています。その場合、答えはallanyに置き換えるだけです。

また、nextの名前は、Pythonに組み込まれているnext関数と競合しないようにしています。

+0

私はそれを再説明しようとします。 1)私はオランダ語を話すので、「volgende」の機能を「next」に翻訳して明確にしました。 2)おそらく私のリストにゼロが含まれていないと、私の関数も実行しなければならないので、any()メソッドは機能しません。この状態では、関数は[1、2、3]のようなリストでは機能しません。 whileループでFalseを返す必要がある唯一のリストは、ゼロのみを含むリストです。 –

+0

あなたはどういうことを言っていますか?この場合、 'any'関数は正常に機能します。 Pythonインタプリタで 'any(char![0,2,3]のcharに対して' 0) 'と打ってみてください。結果は 'True'です。私があなたを誤解していない限り、少なくとも1つの非ゼロ値と少なくとも1つのゼロ値をリストに入れたいとしている場合は、その式を複製し、 '!='を '=='に変更し、 'と'で。 – user3030010