これはばかげた質問かもしれませんが、演算子の関数へのマッピングを見て、演算子を表現する関数がないことに気付きましたnot in
。最初は、これはおそらくインタープリターがこれを に並べ替えるためだと思いましたが、 とまったく同じように動作するように思われるnot x in y
関数があります。何か足りないのですか、それともそのオペレーターは本当に存在しませんか?is not
not in
これが必要な場合の本当にばかげた例を次に示します。
def compare_iter(a,b,func):
return [func(aa,bb) for aa,bb in zip(a,b)]
my_compare=compare_iter(xx,yy,lambda x,y:x not in y) #lambda -- yuck
my_compare=map(operator.not_,compare_iter(xx,yy,operator.contains) #extra map? grr...
#it would be nice to do: my_compare=compare_iter(xx,yy,operator.not_contains)
もちろん、このために独自の関数を作成することもできますが、その場合、オペレーター モジュールがこのコードを python からプッシュして高速に実行できるのに対し、効率が犠牲になります。