我以这种方式编写代码,我想将匹配的值分配给' 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])
但它显示我"语法错误无效。 有任何想法吗?
答案 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
这对可读性并没有多大帮助,但却是将分配和测试结合起来的唯一方法。