各要素の真偽判定 (all / any)
Pythonではリストやタプルなどが保持している要素を、一括で真偽判定(TrueかFalseか)をすることができるall関数、any関数があります。
「all」は引数の反復可能オブジェクトが保持しているすべての要素が真(True)であるときにTrueを返します。
# -*- coding:utf-8 -*- test_list_1 = [0, 100, 300, 800, 150, 0, 40] test_list_2 = ([], [], []) test_list_3 = (['python', 'izm', 'com'], ['www'], ['http']) print all(test_list_1) print all(test_list_2) print all(test_list_3)
--実行結果--
False False True
Pythonでは数値の「0」や「空のリスト」はFalseと判定されます。「test_list_1」は「0」が含まれているため「all」の結果はFalse、「test_list_2」も同様に「空のリスト」が含まれているためFalseとなります。
「all」関数は以下の処理と同じことを行っています(公式ドキュメントより引用)。
def all(iterable):
for element in iterable:
if not element:
return False
return True
「any」は引数の反復可能オブジェクトが保持しているいずれかの要素が真(True)であるときにTrueを返します。
# -*- coding:utf-8 -*- test_list_1 = [0, 100, 300, 800, 150, 0, 40] test_list_2 = ([], [], []) test_list_3 = (['python', 'izm', 'com'], ['www'], ['http']) print any(test_list_1) print any(test_list_2) print any(test_list_3)
--実行結果--
True False True
「test_list_1」は「0」が含まれていますが、Trueと判定される「0以外」も含まれているため「any」の結果はTrue、「test_list_2」は「空のリスト」しか含まれているためFalseとなります。
「any」関数は以下の処理と同じことを行っています(公式ドキュメントより引用)。
def any(iterable):
for element in iterable:
if element:
return True
return False
新しいバージョンでは順序付きディクショナリが標準ライブラリになりました!
▶応用編:順序付きディクショナリ (2.7以降)
