Pythonのany
関数は、リストや他のイテラブルなオブジェクトの要素が一つでも条件に一致するかどうかをチェックするために使用されます。以下にその使用例を示します。
months_list = ["January", "February", "March", "April", "May", "June", "July"]
answer = input("Month? \\n")
while any(item.lower() != answer.lower() for item in months_list):
print("Sorry, didn't recognize your answer, try again")
answer = input("Type in Month\\n")
上記のコードでは、ユーザーが入力した月がmonths_list
に存在するかどうかをチェックしています。もし存在しなければ、ユーザーに再度入力を求めます。
しかし、このコードは期待通りに動作しません。なぜなら、any
関数はイテラブルの要素のうち一つでもTrue
を返すとTrue
を返すため、answer
がmonths_list
の全ての要素と一致しない限りループが続くからです。
この問題を解決するためには、以下のようにコードを修正します。
months_list = ["January", "February", "March", "April", "May", "June", "July"]
while True:
answer = input("Month? ")
if any(item.lower() == answer.lower() for item in months_list):
break
print("Sorry, didn't recognize your answer, try again")
この修正版のコードでは、answer
がmonths_list
のいずれかの要素と一致した場合にループを抜けるようになっています。
以上がPythonのany
関数を使ってリスト内の要素が一致するかどうかをチェックする方法です。この情報がPythonプログラミングに役立つことを願っています。