是否可以在if语句中使用赋值?

时间:2017-06-08 00:07:36

标签: python regex python-3.x

我想在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语句的条件子句中进行赋值,并且上述代码无法执行。

如何在不出错的情况下实现这一目标?提前谢谢。

2 个答案:

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

你甚至可以使用一些魔法使它看起来好像你没有调用一个函数,但这样使用它只是愚蠢。

相关问题