Python if或语句简写

时间:2013-10-15 19:23:26

标签: python if-statement

我正在试图弄清楚是否有一种更短的方式来编写这个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):

有没有办法做到这一点?或者我是否必须写出每个选项?

谢谢, 肖恩

3 个答案:

答案 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}

From docs

  

Python的窥孔优化器现在可以将x in {1, 2, 3}等模式识别为对一组常量中的成员资格的测试。优化器   将set重新转换为frozenset并存储预先构建的常量。   现在速度惩罚消失了,开始写作是切实可行的   使用set-notation进行成员资格测试。这种风格在语义上都是如此   清晰,操作快捷。

答案 2 :(得分:0)

if x>=1 or x<=4:

将完成这项工作