请问为什么会出现list assignment index out of range
class TreeNode(object):def __init__(self, data):
self.data = data
self.children = []
def add_child(self, obj):
self.children.append(obj)
#四层结构
class Tree_4(object):
def __init__(self, text):
self.root = TreeNode(text)
def preorder_trav(self):
if self.root.data ==None :
print("文本无内容!!")
else:
#分段
a=[]
a=self.root.data.split("\n")
for i in a:
self.root.add_child(i)
print(self.root.children)
#分句
node1=[]
node2=[]
for i in range(len(self.root.children)):
print(len(self.root.children),"mmm")
node1=TreeNode(self.root.children)
node1.add_child(node1.data.split("。"))
for i in range(len(node1)):
print(node1)
#分短语
# node2=[]
# for j in range(len(node1.children)):
# node2 = TreeNode(node1.children)
# node2
if __name__=="__main__":
with open(r"知识文本.txt", "r", encoding="utf-8") as f:
text = f.read()
tr=Tree_4 (text)
tr.preorder_trav() 方便复制:
class TreeNode(object):
def __init__(self, data):
self.data = data
self.children = []
def add_child(self, obj):
self.children.append(obj)
#四层结构
class Tree_4(object):
def __init__(self, text):
self.root = TreeNode(text)
def preorder_trav(self):
if self.root.data ==None :
print("文本无内容!!")
else:
#分段
a=[]
a=self.root.data.split("\n")
for i in a:
self.root.add_child(i)
print(self.root.children)
#分句
node1=[]
node2=[]
for i in range(len(self.root.children)):
print(len(self.root.children),"mmm")
node1=TreeNode(self.root.children)
node1.add_child(node1.data.split("。"))
for i in range(len(node1)):
print(node1)
#分短语
# node2=[]
# for j in range(len(node1.children)):
# node2 = TreeNode(node1.children)
# node2
if __name__=="__main__":
with open(r"知识文本.txt", "r", encoding="utf-8") as f:
text = f.read()
tr=Tree_4 (text)
tr.preorder_trav() 好歹把你的文本放出来给别人才好帮你调试嘛 程序可以正常运行的 isdkz 发表于 2023-1-6 16:14
好歹把你的文本放出来给别人才好帮你调试嘛
在过去的工程实践中,领域专家积累了大量知识和经验,这些知识能够对高维设计空间进行有效约减,实现采样数据的效用最大化,但由于流动机理复杂多变,知识的类型多样,缺乏有效的表征方法。
本课题将气动知识从宏观到微观分为4个层次,如图 1所示,在第一个层次中,描述映射关系的基本属性,设计参数与设计目标之间映射关系的属性,例如,映射关系是否连续、有无突变、呈线性或非线性关系等;第二个层次用于描述特定设计变量与性能之间的单调关系,这种气动知识较为常见,领域专家很容易表达出来,例如法向力会随着攻角的增大而增大,但随着马赫数的增大而降低;第三个层次比第二个层次复杂得多,描述了特定特征和目标之间的形状关系,例如在攻角变化过程中,气动参数会以以L型降低,斜率也会发生一定变化;第四层,最后一个层次用于描述多个特征和目标之间的经验关系,即输入参数和输出参数之间的完整关系式,例如气动外形和气动力之间的经验公式。
chinajz 发表于 2023-1-8 21:34
程序可以正常运行的
但是为什么我的会出现超出范围呢
夕阳袅袅 发表于 2023-1-11 12:05
在过去的工程实践中,领域专家积累了大量知识和经验,这些知识能够对高维设计空间进行有效约减,实现 ...
不好意思{:5_105:} 稍微改了一下:
class TreeNode(object):
def __init__(self, data):
self.data = data
self.children = []
def add_child(self, obj):
if obj:
self.children.append(obj)
#四层结构
class Tree_4(object):
def __init__(self, text):
self.root = TreeNode(text)
def preorder_trav(self):
if self.root.data == '' : # 这里把 None 改成 ''
print("文本无内容!!")
else:
#分段
a=self.root.data.split("\n")
for i in a:
self.root.add_child(i.strip())
#分句
self.node = []
for c in self.root.children:
self.node.append(TreeNode(c))
for n in self.node:
for i in n.data.split("。"):
n.add_child(i)
print(n.children)
#分短语
# node2=[]
# for j in range(len(node1.children)):
# node2 = TreeNode(node1.children)
# node2
if __name__=="__main__":
with open(r"知识文本.txt", "r", encoding="utf-8") as f:
text = f.read()
tr=Tree_4 (text)
tr.preorder_trav()
页:
[1]