问题描述
我正在尝试将其精简化,但是在遍历列表时尝试在理解中实现正则表达式会陷入困境。
acl_lines = some_list
hash_dict = {}
for line in acl_lines:
search = re.search(hash_regex,line)
if search:
hash_dict[search.group(2)] = search.group(1)
解决方法
您可以执行以下操作:
hash_dict = {
s.group(2): s.group(1)
for s in (re.search(hash_regex,line) for line in acl_lines) if s
}
为了不再次调用search
,请插入一个额外的生成器表达式。