pythonic方法在if语句中重写赋值

Fal*_*rri 5 python syntax if-statement

有没有一种pythonic首选方法来实现这一点,我将在C++中做:


for s in str:
    if r = regex.match(s):
        print r.groups()
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢这种语法,因为它比在任何地方都有临时变量要清晰得多.唯一不太复杂的其他方式是


for s in str:
    r = regex.match(s)
    if r:
        print r.groups()
Run Code Online (Sandbox Code Playgroud)

我想我抱怨一个非常迂腐的问题.我只是想念以前的语法.

Ivo*_*ijk 10

怎么样

for r in [regex.match(s) for s in str]:
    if r:
        print r.groups()
Run Code Online (Sandbox Code Playgroud)

或更多功能

for r in filter(None, map(regex.match, str)):
    print r.groups()
Run Code Online (Sandbox Code Playgroud)