それは正常な動作ですか?
answer=all(c=='false True answer?' for c in [])
# answer = True
そのような行を使用するために、空のリストで「すべて」によるチェック値で False が必要な場合は問題ありませんか?:
answer=all(set([c=='a' for c in []]) or [False,])
次の場合は問題ありません。
answer=all(set([c=='a' for c in ['a','a']]) or [False,])
answer=all(set([c=='a' for c in ['a','b']]) or [False,])
次のような逆ロジックを使用することにしました。
bad_answer=bool([c for c in ['a','b'] if c!='a'])