оператор Python, нет оператора для «не в»
Это возможно глупый вопрос, но, глядя наотображение операторов на функции Я заметил, что нет функции для выражения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 и, следовательно, выполнить быстрее.