我正在试图弄清楚是否有一种更短的方式来编写这个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):
有没有办法做到这一点?或者我是否必须写出每个选项?
谢谢, 肖恩
答案 0 :(得分:6)
你想要:
if x in (1, 2, 3, 4):
答案 1 :(得分:3)
使用in
运算符:
if x in range(1, 5)
在Python2上,您可以使用xrange
。
在Python 3.2+上,建议使用set literals:
if x in {1, 2, 3, 4}
:
Python的窥孔优化器现在可以将x
in {1, 2, 3}
等模式识别为对一组常量中的成员资格的测试。优化器 将set
重新转换为frozenset
并存储预先构建的常量。 现在速度惩罚消失了,开始写作是切实可行的 使用set-notation进行成员资格测试。这种风格在语义上都是如此 清晰,操作快捷。
答案 2 :(得分:0)
if x>=1 or x<=4:
将完成这项工作