« [ python / books ] 実践Python errata | トップページ | [ .NET ] プログラミング Microsoft .NET Framework 第二版 »

2006/12/07

[ 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 で回しているだけだったりする(´・ω・`)

|

« [ python / books ] 実践Python errata | トップページ | [ .NET ] プログラミング Microsoft .NET Framework 第二版 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [ python2.5 ] 新しく加わった all() と any():

« [ python / books ] 実践Python errata | トップページ | [ .NET ] プログラミング Microsoft .NET Framework 第二版 »