我试图弄清楚是否有一种更短的方式来编写这个 if 语句(写了一个非常基本的、不切实际的 if 语句,这样很容易理解这一点。
x = 3
if x == 1 or x == 2 or x == 3 or x==4:
print x
else:
print "nope"
我想写一些类似的东西:
if x == or(1,2,3,4):
有什么办法吗?还是我必须写出每个选项?
谢谢,肖恩
我试图弄清楚是否有一种更短的方式来编写这个 if 语句(写了一个非常基本的、不切实际的 if 语句,这样很容易理解这一点。
x = 3
if x == 1 or x == 2 or x == 3 or x==4:
print x
else:
print "nope"
我想写一些类似的东西:
if x == or(1,2,3,4):
有什么办法吗?还是我必须写出每个选项?
谢谢,肖恩
你要:
if x in (1, 2, 3, 4):
使用in
运算符:
if x in range(1, 5)
在 Python2 上,您可以使用xrange
.
在 Python 3.2+ 上,建议使用集合文字:
if x in {1, 2, 3, 4}
:
来自文档:
Python 的窥视孔优化器现在可以将 x 等模式识别
in {1, 2, 3}
为对一组常量成员资格的测试。优化器将 重铸set
为 afrozenset
并存储预构建的常量。现在速度损失已经消失了,开始使用集合符号编写成员测试是可行的。这种风格在语义上清晰且操作快速。
if x>=1 or x<=4:
会做这项工作