相关疑难解决方法(0)

使用"not"和"in"关键字的语法顺序

在测试会员资格时,我们可以使用:

x not in y
Run Code Online (Sandbox Code Playgroud)

或者:

not y in x
Run Code Online (Sandbox Code Playgroud)

根据x和,这个表达式可能有许多可能的上下文y.例如,它可以用于子字符串检查,列表成员资格,字典密钥存在.

  • 这两种形式总是相同吗?
  • 有首选语法吗?

python syntax

91
推荐指数
3
解决办法
1万
查看次数

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)
Run Code Online (Sandbox Code Playgroud)

当然我可以为此编写自己的函数,但是你需要为效率付出代价,而运算符模块可以将这些代码从python中推出,因此执行速度更快.

python indexing performance

18
推荐指数
1
解决办法
5980
查看次数

"是"运算符在Python中做了什么?

我(可能是错误的)认为is运算符正在进行id()比较.

>>> x = 10
>>> y = 10
>>> id(x)
1815480092
>>> id(y)
1815480092
>>> x is y
True
Run Code Online (Sandbox Code Playgroud)

然而,val is not None看起来它并不那么简单.

>>> id(not None)
2001680
>>> id(None)
2053536
>>> val = 10
>>> id(val)
1815480092
>>> val is not None
True
Run Code Online (Sandbox Code Playgroud)

然后,'是'运营商做了什么?它只是我推测的对象id比较吗?如果是这样,val is not None在Python中被解释为not (val is None)

python operators

7
推荐指数
1
解决办法
2710
查看次数

(a不在b中)和(不在b中)之间的差异.蟒蛇

嗨,有人可以阐明在Python中使用"in"运算符的机制.

我现在正在处理以下示例:

print ('a' not in ['a', 'b'])  # outputs False
print (not 'a' in ['a', 'b'])  # outputs False   --   how ???

print ('c' not in ['a', 'b'])  # outputs True
print (not 'c' in ['a', 'b'])  # outputs True


print (not 'a')   # outputs False
# ok is so then...
print (not 'a' in ['b', False])   # outputs True --- why ???
Run Code Online (Sandbox Code Playgroud)

我现在很奇怪它是如何如此.如果有人知道,请分享您的知识.谢谢=)

python

3
推荐指数
1
解决办法
1514
查看次数

标签 统计

python ×4

indexing ×1

operators ×1

performance ×1

syntax ×1