我想在Python 3中做类似的事情:
import re
s = "abcde"
if match = re.search("abc(de)", s):
print(match.group(1))
elif match = re.search("abc(fg)", s):
print(match.group(1))
elif match = re.search("abc(hi)", s):
print(match.group(1))
...
但是,Python不允许在if
语句的条件子句中进行赋值,并且上述代码无法执行。
如何在不出错的情况下实现这一目标?提前谢谢。
答案 0 :(得分:3)
您可以用更好的方式表示正则表达式模式。
类似的东西:
match = re.search("abc(de|fg|hi)", s)
if match:
print(match.group(1))
如果您的正则表达式模式稍微复杂一些,您可以遍历模式以单独匹配并检查:
patterns = [r"abc(de)", r"abc(fg)", r"abc(hi)"]
for pattern in patterns:
match = re.search(pattern, s)
if match:
print(match.group(1))
答案 1 :(得分:0)
在Python中,nope,您只能在a = tf.ones([64, 10, 1, 100])
b = tf.ones([64, 1, 1, 100])
print((a+b).shape) # prints "(64, 10, 1, 100)"
语句中使用表达式。但如果你真的想这样做,你可以委托:
if
你甚至可以使用一些魔法使它看起来好像你没有调用一个函数,但这样使用它只是愚蠢。