■
Pythonのプログラムを IPythonで実行すると、結果が変わっていた。 調べると、元々ビルトインのallがnumpyのallに変わっていた。 しかもnumpyのallはジェネレータを受け取ると常にTrueになっている!
all([0]) all(i for i in [0]) all([i for i in [0]]) __builtin__.all(i for i in [0])
1行目は期待通りFalseだが2行目はジェネレータを返しboolにするとTrue扱いだ。 期待通りにするには、3行目か4行目のようにするしかない。 忘れないようにするには、最初に「all = __builtin__.all」とするか。 「from numpy import all」で戻る。