给出一个清单
list=['beak','back','bear','kill','keel']
我想使用外卡执行搜索,以返回与模式k**l
匹配的所有字词。我可以通过以下方式轻松解决这个问题:
regex=re.compile('k..l')
matches=[string for string in list if re.match(regex, string)]
但是,我还想访问匹配位置的索引,并有类似的东西:
matches=kill, keel
locs=3,4
我想要索引的原因是,一旦找到匹配项,我想在df中访问完整行(包含其他变量)。
感谢您的帮助。
答案 0 :(得分:2)
如我的评论所述,您可以合并enumerate
和zip
来实现目标:
import re
lst=['beak','back','bear','kill','keel']
regex=re.compile('k..l')
locs, matches = zip(*[(idx, string) for idx, string in enumerate(lst) if re.match(regex, string)])
print(matches)
print(locs)