gpt4 book ai didi

python 运算符, "not in"没有运算符

转载 作者:IT老高 更新时间:2023-10-28 21:03:03 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但看看 the mapping of operators to functions我注意到没有函数可以表达 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)

当然,我可以为此编写自己的函数,但是你会付出效率的代价,而运算符(operator)模块可以将这段代码从 python 中推出,因此执行得更快。

最佳答案

这里不需要其他功能。 not inin 的倒数,因此您有以下映射:

obj in seq => contains(seq, obj)

obj not in seq => not contains(seq, obj)

你是对的,这与 is/is not 不一致,因为身份测试应该是对称的。这可能是一个设计工件。

关于python 运算符, "not in"没有运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11435206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com