我的代码有效,但是单行(map
,filter
,zip
或其他任何东西)将是一个更好的解决方案
form_win = ['2/5','1/4','3/2','4/1','5/8','1/3','7/10','8/6']
form_chr = ['a','b','c','d','e','f','g','h']
b=[]
for cnt, a in enumerate(form_win):
if re.match(r'^1\/', a) != None:
b.extend(form_chr[cnt])
print ('uglyst:',b)
这是一个使用map,filter和zip的解决方案
b = list(map(lambda x: x[1], filter(lambda x: re.match(r'^1\/', x[0]) != None, zip(form_win,form_chr))))
您可以使用:
b = [form_chr[cnt] for cnt, a in enumerate(form_win) if re.match(r'^1\/', a) is not None]
您可以按如下方式优化代码:
import re
form_win = ['2/5','1/4','3/2','4/1','5/8','1/3','7/10','8/6']
form_chr = ['a','b','c','d','e','f','g','h']
print('uglyst:',[ form_chr[cnt] for cnt, a in enumerate(form_win) if(re.match(r'^1\/', a))])