我可以在Python上的if条件中为变量赋值

时间:2013-08-29 11:03:08

标签: python

我以这种方式编写代码,我想将匹配的值分配给' m' 但是[1]可能不包括我想要的拍。 如果确实如此,那么我会继续做一些关于' m' 例如:m.group(2).split()....

  if re.match(pat, lst[1]):
       m=re.match(pat, lst[1])

但我不想重复两次re.match(pat,lst [1])。

我想以这种方式实现

  if m = re.match(pat, lst[i])

但它显示我"语法错误无效。 有任何想法吗?

2 个答案:

答案 0 :(得分:4)

只需预先指定值并检查它是否为无:

m = re.match(pat,lst[1])
if not m:
  del m

答案 1 :(得分:0)

您可以滥用for来完成任务。

def for_if(expression):
    if expression:
        yield expression

for m in for_if(re.match(pat, lst[1])):
    # work with m

或只是

for m in (i for i in (re.match(pat, lst[1]),) if i):
    # do the same

这对可读性并没有多大帮助,但却是将分配和测试结合起来的唯一方法。