python方括号套方括号_Python解析嵌套方括号
我想把一个带有嵌套方括号的字符串解析成一个嵌套列表。在
示例-parse_nested("abc(def(gh)ij)klm") -> ["abc", ["def", ["gh"], "ij"], "klm"]。在
我的代码可以工作,但我想知道是否有更好的方法来实现这一点。在
这里是我的代码(稍后我将编写检查以捕获格式错误的输入):def match(s, start, stop):
start = c = s.index(start)
level = 0
while c < len(s):
if s[c] == start:
level += 1
elif s[c] == stop:
level -= 1
if level == 0:
return (start+1, c)
c += 1
return None
def parse_nested(s):
if start not in s and stop not in s:
return s
else:
g = match(s, start, stop)
first = s[:g[0]-1]
middle = parse_nested(s[g[0]:g[1]])
last = parse_nested(s[g[1]+1:])
result = [first] if first else []
if type(middle) == str:
result.append([middle])
else:
result.append(middle)
if last:
if type(last) == str:
result.append(last)
else:
result += last
return result
除了使用解析库之外,还有没有更短/更好的方法来实现这一点?在
python方括号套方括号_Python解析嵌套方括号相关推荐
- python列表去括号_python 去括号
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 遍历字符串,将属于开括号集合的括号加入到列表中,当遇上一个闭括号的时候计算该闭括 ...
- python两个中括号_python中括号
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 遍历字符串,将属于开括号集合的括号加入到列表中,当遇上一个闭括号的时候计算该闭括 ...
- python如何选择命令_python 解析命令行选项
问题: 程序如何能够解析命令行选项 解决方案 argparse 模块可被用来解析命令行选项 argparse 模块 argparse 模块是标准库中最大的模块之一,拥有大量的配置选项 dest 参数指 ...
- python处理xml文件_Python解析并修改XML文件
XML 本质上只是一种数据格式,它的本意并不是管理数据,因此,在 XML 应用中,数据的管理仍然要借助数据库,尤其是当数据量很大.性能要求很高的时候. XML数据库具有以下优势: XML数据库能够对半 ...
- python读取windows日志_Python解析windows系统日志文件
DOM是Document Object Model的简称,XML 文档的高级树型表示.该模型并非只针对 Python,而是一种普通XML 模型.Python 的 DOM 包是基于 SAX 构建的,并且 ...
- python嵌套循环注意事项_python循环嵌套的几种使用方法
使用循环嵌套来获取100以内的质数 使用循环嵌套来获取100以内的质数 #!/usr/bin/python # -*- coding: UTF-8 -*- num=[]; i=2 for i in r ...
- python读取json并列_python解析含有重复key的json方法
python自带的json包能够方便的解析json文本,但是如果json文本中包含重复key的时候,解析的结果就是错误的.如下为例 {"key":"1", &q ...
- python列表去括号_python的常用序列
list 1.list(obj)函数 obj可以为:元组(1,2,3),可迭代对象,字符串等转换换成数组类型 2. 列表元素的添加 (1)list+[添加的元素] (2)list.append(添加元 ...
- python分析txt文件_python解析文本文件
python解析的文件原始数据: 汉皇重色思倾国,御宇多年求不得. 杨家有女初长成,养在深闺人未识. 天生丽质难自弃,一朝选在君王侧. 回眸一笑百媚生,六宫粉黛无颜色. 春寒赐浴华清池,温泉水滑洗凝脂 ...
最新文章
- 判断正则 shell_年薪百万之路--第七十八天 Linux基础 shell
- SecureCRT 日志添加时间戳(精确到毫秒)
- android自定义控件实例
- python词云的简单使用
- Linux下shell命令 1
- AcWing 4244. 牛的比赛(双向建图BFS)
- php phonegap,PHP数据是无休止的加载,jquery,phonegap
- 余世伟视频笔记----如何塑造管理者的性格魅力领袖根性之细心和胆识
- SDN相关组织之ODL(opendaylight)
- Python 计算两个连通子图距离_复杂网络分析之python利器NetworkX
- 电脑计算机简单密码设置方法,电脑开机密码怎么设置,开机密码设置很简单!
- Python matplotlib 中填充颜色
- 机器人门禁控制盒怎么接线方法_门禁系统接线方法
- 11-液晶显示器主要看什么参数?电脑显示器各项参数的含义科普大全
- 图像细节增强(直方图均衡化,对数变换,Gamma变换(校正))
- 在线引流工具Tcpcopy原理、环境搭建、使用、采坑
- java中什么是装饰者模式? 装饰者模式的使用!!
- Windows 2008R2 +MDT2013+WDS(1)
- 如何做好工作中的思考沉淀?
- 如何选择负载均衡设备?