[ python2.5 ] 新しく加わった all() と any()
Python2.4 まではリストやタプルに含まれるすべての要素が True なのか、あるいは False なのかを調べるのは結構面倒でした。要素をひとつずつ取り出してfor でまわすとかね。
Python2.5 では、これらの処理を楽にするために all() と any() という関数が組み込み関数に追加されました。前者はすべての要素が True のときに True を返し、後者はどれかひとつでも True があれば True を返します。あ、False が返るのは前述の場合以外ね。
たとえばこんな感じ↓
Python 2.5 (r25:51908, Nov 6 2006, 14:35:55)
>>> all_true = [True, "hoge", 255, ["nested_list"]]
>>> all( all_true )
True
>>> any( all_true )
True
>>> true_false = ["hoge", '', 255, 0]
>>> all( true_false )
False
>>> any( true_false )
True
>>> all_false = [False, '', 0, [] {}]
>>> all( all_false )
False
>>> any( all_false )
False
使う場面としては、並列処理の結果をリストに保存してひとつでも False があったら、つまり all() の結果が False になったら処理をやり直すかリカバリ処理を行うということが考えられます。
- まとめ
- all() は全部が True だったら True を返す。ほかの場合は False を返す。
- any() はどれかひとつでも True があれば True を返す。全部が False のときのみ False を返す。
- どっちも中身は for で回しているだけだったりする(´・ω・`)
- any() はどれかひとつでも True があれば True を返す。全部が False のときのみ False を返す。
| 固定リンク
この記事へのコメントは終了しました。
コメント