Python 2.7中AND-OR树的存储格式
发布时间:2020-12-20 13:13:39 所属栏目:Python 来源:网络整理
导读:我正在做决策树的一些工作,我正在使用AND-OR树作为表示.我正在为这种树寻找合适的存储格式. 以“t”开头的节点是OR节点,节点以“c”开头是(有序!)AND节点.叶子总是以“p”开头. 最初,每个节点包含两部分:节点名称和节点描述. 图片显示了同一决策树的两种不
我正在做决策树的一些工作,我正在使用AND-OR树作为表示.我正在为这种树寻找合适的存储格式.
以“t”开头的节点是OR节点,节点以“c”开头是(有序!)AND节点.叶子总是以“p”开头. 最初,每个节点包含两部分:节点名称和节点描述. 图片显示了同一决策树的两种不同表示.基本上我需要两种表示,分别是一种简单快速的解决方案,可以将表示转换为彼此. 到目前为止我的想法 数据类型: Dict:有必要使用有序的字典.此外,存储名称和描述会更容易. 列表会很好,因为订单已定义,但我不知道如何以良好的方式保存节点名称和描述. 节点链接: 基本上,可以使用这两种数据类型.但是我不知道如何将节点相互链接.我应该使用关键字(例如“AND”和“OR”)还是应该嵌套节点? 非常感谢任何意见. 解决方法
如果使用列表,则可以通过嵌套将它们链接在一起.
就像是: ['t1',['c1','p1',['c2','p2','p3']],['c3',['c4','p4','p5'],['t2',['c5','p6','p7'],'p8']]] 基本结构如下: BASE := [node_name,left,right] 哪里: > node_name是(在此示例中)字符串和 没有什么能阻止你使用OrderedDicts,但是创建得到了一些麻烦的IMO: In [26]: from collections import OrderedDict as OD In [27]: tree = OD((('name','t1'),('left','c1'),('right',OD((('name','...'),)) ))) In [28]: tree Out[28]: OrderedDict([('name',OrderedDict([('name','...')]))]) 最后,您可以创建自己的数据结构: class Node: type = '' left = None right = None (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将urls.py中的变量(标志)传递给django中的views.py.
- 有没有办法在Python中检查os.environ的条目是变量还是shell
- python – 使用内置AuthenticationForm时的Django-crispy-f
- python – 限制来自任何给定IP地址的请求数
- 有没有办法让python程序在崩溃时运行一个动作?
- 用标题列出到python中的csv
- python scapy的用法之ARP主机扫描和ARP欺骗
- python – django rest framework 3 ImageField发送ajax结果
- python创建tcp服务端和客户端
- 这个python函数可以被矢量化吗?