列表从另一个列表中选择正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表从另一个列表中选择正则表达式相关的知识,希望对你有一定的参考价值。
我的代码有效,但是单行(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))])
以上是关于列表从另一个列表中选择正则表达式的主要内容,如果未能解决你的问题,请参考以下文章