pythonでリストの中の複数の文字列があるときに動くように記述したいとき
list = ["apple", "banana", "peach"] if "apple" in list and "banana" in list: print("ok") >> ok
このように分けて記述する必要がある。 if "apple" and "banana" in list:
や if ("apple", "banana") in list:
のようには出来ない。 対象の文字列が増えていくほど面倒である。
ここで、組み込み関数であるall()を使うと
list = ["apple", "banana", "peach"] if all(map(list.__contains__, ("apple", "banana",))): print("ok") >> ok
対象が多くても、()の中に追加記述していくだけでいい。
同じ要領でany()を使うとorの挙動をとる。
list = ["apple", "banana", "peach"] if any(map(list.__contains__, ("apple", "banana", "strawberry"))): print("ok") >> ok