« [ 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 第二版 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/103108/12959486

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

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