python中字典的find_python-re.findall返回命名捕获组的字典?
没有内置方法可以执行此操作,但是可以通过使用列表推导来达到预期的结果。
[dict([[k, i if isinstance(i, str) else i[v-1]] for k,v in pat.groupindex.items()]) for i in pat.findall(text)]
格式友好:
>>> [
... dict([
... [k, i if isinstance(i, str) else i[v-1]]
... for k,v in pat.groupindex.items()
... ])
... for i in pat.findall(text)
... ]
我们使用列表推导构建一个列表,遍历来自groupindex的结果,该结果要么是字符串列表,要么是元组列表(0或1个捕获组会生成dict)。
对于结果中的每一项,我们从另一个列表理解中构造一个groupindex,该列表理解是从已编译模式的dict字段生成的,如下所示:
>>> pat.groupindex
{'name2': 2, 'name': 1}
为groupindex中的每个项目构造一个列表,如果dict中的项目是一个元组,则使用groupindex中的组号来查找正确的项目,否则将该项目分配给(仅现存的)命名组。
[k, i if isinstance(i, str) else i[v-1]]
最后,从字符串列表的列表中构建字典。
请注意,2933302076859409408仅包含命名组,因此在生成的dict中将省略未命名的捕获组。
结果:
[dict([[k, i if isinstance(i, str) else i[v-1]] for k,v in pat.groupindex.items()]) for i in pat.findall(text)]
[{'name2': 'sue', 'name': 'bob'}, {'name2': 'richard', 'name': 'jon'}]
python中字典的find_python-re.findall返回命名捕获组的字典?相关推荐
- python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)
python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录
- python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名
搜索热词 Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就 ...
- Python中调用Linux命令并获取返回值
方法一.使用os模块的system方法: os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于sh ...
- linux python脚本返回,在C/python中执行linux命令并得到返回值以及输出
一般来说,用shell的方便之处在于,能够直接调用linux系统命令,方便的得到结果. 但是shell scprit的约束重重(这里不再讲了).下面说一下在C和python中如何调用linux命令.得 ...
- python中如何创建一个空列表_Python创建空列表的字典2种方法详解
如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都 ...
- 统计英语6级试题中所有单词的词频 并返回一个如下样式的字典
作业内容 统计英语6级试题中所有单词的词频,并返回一个如下样式的字典 {'and':100,'abandon':5} 英语6级试题的文件路径./artical.txt Tip: 读取文件的方法 def ...
- 详解Python正则表达式之: (?Pname…) named group 带命名的组
2019独角兽企业重金招聘Python工程师标准>>> Python 2.7的手册中的解释: (?P<name>...) Similar to regular paren ...
- python中唯一的映射类型是什么_Python基础类型之字典(dict)
1.字典: { } 字典是 Python 语言中唯一的映射类型.映射类型对象里哈希值(键) 和指向的对象(值)是一对多的关系. 2.创建字典 d1 = {'name': 'earth', 'port' ...
- python中装饰器的参数与返回值
def itcast1(fun): def inner(*args, **kwargs): print("itcast1 start") # args -> 元组数 ...
最新文章
- lispbox 安装运行.sh的时候出现 lispbox.sh: 2: lispbox.sh: Bad substitution
- 缓存框架OSCache部分源码分析
- Android中TimePicker时间选择器的使用和获取选择的时和分
- 【PL/SQL】学习笔记 (1)一个简单的PL/SQL程序
- SpringMVC中注解@RequestBody和@ResponseBody的使用区别
- 麒麟Linux关闭telnet,银河麒麟系统管理员使用手册(30页)-原创力文档
- Helm 3 完整教程(二十一):Helm 创建和引用子模板
- 一位大佬对于 Qt 学习的最全总结(三万字干货)
- 2017年世界500强企业排行榜【完整榜单】2017财富杂志世界五百强排名
- Bumped!详解—(Dijkstra堆优化,优先队列实现,结构体重载运算符)
- 2012年8月编程语言排行榜-C领衔称霸Obj-C强势爬升
- 程序员平时都是木讷的,但是谈到计算机或者程序的时候简直就是天才—兼借题发挥,谈谈语言及工具的选择...
- 杭电ACM 2000-2099 100道题 详细解题报告出炉
- 一些比较实用的书籍推荐
- Object.defineProperty方法的简单介绍
- larbin的详细配置
- 在数据库中如何使用存储过程
- 爱剪辑的入门使用体验
- Amesim(六):如何使用回放功能
- unity mono 编译