我想知道是否有办法以更紧凑的方式执行以下操作:
if (text == "Text1" or text=="Text2" or text=="Text3" or text=="Text4"):
do_something()
问题是我在if语句中只有4个比较,它开始看起来很长,模糊和丑陋。有什么想法吗?
答案 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()