Python多重比较风格?

时间:2011-03-18 15:19:29

标签: python coding-style comparison readability

我想知道是否有办法以更紧凑的方式执行以下操作:

if (text == "Text1" or text=="Text2" or text=="Text3" or text=="Text4"):
    do_something()

问题是我在if语句中只有4个比较,它开始看起来很长,模糊和丑陋。有什么想法吗?

2 个答案:

答案 0 :(得分:16)

这个怎么样:

if text in ( 'Text1', 'Text2', 'Text3', 'Text4' ):
    do_something()

我总是觉得简单而优雅。

答案 1 :(得分:7)

“if in text”答案是好的,但如果你的文本字符串符合模式,你也可以考虑re(正则表达式)包。 例如,从字面上看你的例子,“Text”后跟一个数字将是一个简单的正则表达式。

这是一个应该适用于“Text”后面跟一个数字的例子。 \ Z匹配字符串的结尾,\ d是一个数字。

if re.match('Text\d\Z', text):
   do_something()