python嵌套列表法实现树_python – 将嵌套的括号树转换为嵌套列表
我有一个树结构文件,其中括号用于表示树.这是将代码转换为
python嵌套列表的代码
def foo(s):
def foo_helper(level=0):
try:
token = next(tokens)
except StopIteration:
if level != 0:
raise Exception('missing closing paren')
else:
return []
if token == ')':
if level == 0:
raise Exception('missing opening paren')
else:
return []
elif token == '(':
return [foo_helper(level+1)] + foo_helper(level)
else:
return [token] + foo_helper(level)
tokens = iter(s)
return foo_helper()
当字符长度为1时,它工作正常.对于单词或句子,同样不适当的工作.
我的树样本是:
( Satellite (span 69 74) (rel2par Elaboration)
( Nucleus (span 69 72) (rel2par span)
( Nucleus (span 69 70) (rel2par span)
( Nucleus (leaf 69) (rel2par span) (text _!MERRILL LYNCH READY ASSETS TRUST :_!) )
( Satellite (leaf 70) (rel2par Elaboration) (text _!8.65 % ._!) )
)
( Satellite (span 71 72) (rel2par Elaboration)
( Nucleus (leaf 71) (rel2par span) (text _!Annualized average rate of return_!) )
( Satellite (leaf 72) (rel2par Temporal) (text _!after expenses for the past 30 days ;_!) )
)
)
( Satellite (span 73 74) (rel2par Elaboration)
( Nucleus (leaf 73) (rel2par span) (text _!not a forecast_!) )
( Satellite (leaf 74) (rel2par Elaboration) (text _!of future returns ._!) )
)
)
在这里,输出需要
[‘satellite’,[‘span’,’69’,’74’] ………]但是给定的函数我得到的是[‘s’,’a’,’t’. ………….. [ ‘S’, ‘p’, ‘A’, ‘N’, ‘7’, ‘3’] ……….. …]
怎么修改?
最佳答案 我以为你想用_!来表示带空格的字符串.然后我使用正则表达式拆分表达式:
from re import compile
resexp = compile(r'([()]|_!)')
…
tokens = iter(resexp.split(s))
…
我的结果是(使用深度= 4的pprint)
$python lispparse.py | head
['\n',
[' Satellite ',
['span 69 74'],
' ',
['rel2par Elaboration'],
'\n ',
[' Nucleus ',
['span 69 72'],
' ',
['rel2par span'],
我进一步改进了它:
tokens = iter(filter(None, (i.strip() for i in resexp.split(s))))
得到了:
$python lispparse.py
[['Satellite',
['span 69 74'],
['rel2par Elaboration'],
['Nucleus',
['span 69 72'],
['rel2par span'],
['Nucleus', [...], [...], [...], [...]],
['Satellite', [...], [...], [...], [...]]],
['Satellite',
['span 73 74'],
['rel2par Elaboration'],
['Nucleus', [...], [...], [...]],
['Satellite', [...], [...], [...]]]]]
python嵌套列表法实现树_python – 将嵌套的括号树转换为嵌套列表相关推荐
- python构建huffman树_python:哈夫曼树,PythonHuffuman
Python:Huffuman树 题目 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列 ...
- python基础语法 第3关_Python基础语法 第3节课 (列表)
[ ]列表 一.列表可以存放的内容 1.列表可以存放哪些类型? 列表是一个大仓库,百宝箱,所学过的所有类型,都可以放在列表里面. my_list = [1,2,3,(2,'polo'),6,'hell ...
- python的内建数据结构包括_Python中3种内建数据结构:列表、元组和字典
Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面 ...
- python查表法是什么_python查表法提取骨骼线经历
首先根据这篇博文https://www.cnblogs.com/xianglan/archive/2011/01/01/1923779.html,自己重新编写python代码,由于出现局部错误,导致出 ...
- python列表最多有多少元素_Python中包含一百万个元素的列表会占用多少...
这取决于你的Python版本和你的系统,但我会帮你弄清楚它需要多少内存.首先,sys.getsizeof只返回表示容器的对象的内存使用,而不是容器中的所有元素. Only the memory con ...
- 用python穷举法判断素数_Python如何判断素数
判断一个给定的正整数是否素数 输入格式: 输入在第一行给出一个正整数n(≤ 10),随后n行,每行给出一个小于1000000 的需要判断的正整数 输出格式: 对每个需要判断的正整数,如果它是素数,则在 ...
- python中turtle画树_python中turtle可以画树吗?怎么画?
这几天给大家介绍的画图形的方法很多,小编就想着有没有难一点的可以挑战一下.经过一番搜集资料,还真的被小编找到了.当然代码会比较长,小伙伴们学习的时候要有耐心,不要出现手滑的现象,不然对着代码一点点找失 ...
- python 圆括号和方括号一样吗_Python中用方括号和圆括号括起来的列表有什么区别?...
方括号是lists,而圆括号是tuples. 列表是可变的,这意味着您可以更改其内容:>>> x = [1,2] >>> x.append(3) >>& ...
- python穷举法搬砖_python 穷举法 算24点(史上最简短代码)-阿里云开发者社区
# 作者:hhh5460 # 时间:2017年6月3日 import itertools deftwentyfour(cards): '''史上最短计算24点代码''' for nums in ite ...
- python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法
python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...
最新文章
- c++ 重载 重写_Java | 深入理解方法调用的本质(含重载与重写区别)
- 2010年最火与最冷的IT职业
- form表单刷新_《大胖 ? 小课》- 不用 js 实现文件无刷新上传
- 疫情影响海外净利润?海尔智家的回答出人意料
- django model filter_django中探索如何提高查询数据效率
- linux网卡驱动 pdf,Linux下网卡驱动程序.pdf
- python下载邮件附件_Python - 从电子邮件附件下载excel文件然后解析它
- z-index在IE中的迷惑
- 2017.3.25 圆桌聚餐 思考记录
- jQuery的Select操作集合
- Idea 集成Lombok插件
- 概率就是个冷冰冰的坑
- Abaqus2020帮助文件无法搜索问题
- css画横线箭头_如何用纯CSS实现的箭头的效果?
- zblog怎么定位html代码,zblog模板修改常用调用标签代码
- Contrastive Adaptation Network for Unsupervised Domain Adaptation
- Express高效查询纯真IP库插件lib-qqwry
- 相爱容易相守难,盘点那些摔倒在奔跑途中的创业公司
- 利用 IP 扩展访问列表实现应用服务的访问限制
- 百家号素材审核规范说明
热门文章
- LeetCode 870. 优势洗牌(贪心 二分查找)
- LeetCode 216. 组合总和 III(排列组合 回溯)
- randn函数加噪声_语义分割中常用的损失函数1(基础篇)
- 爬虫案列:京东商城长裤信息获取
- centos6.5装mysql好难_CentOS6.5 下MySQL傻瓜式安装
- python中的列表和元组_百度资讯搜索_python中的列表和元组
- 论文浅尝 | Data Intelligence第4期正式上线啦
- 论文浅尝 | 提取计数量词丰富知识库
- 领域应用 | 智能导购?你只看到了阿里知识图谱冰山一角
- python中mysql更新字段中传参问题