鱼C论坛

 找回密码
 立即注册
查看: 3104|回复: 7

请问为什么会出现list assignment index out of range

[复制链接]
发表于 2023-1-6 13:58:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[0])
            #分句
            node1=[]
            node2=[]
            for i in range(len(self.root.children)):
                print(len(self.root.children),"mmm")
                node1[i]=TreeNode(self.root.children[i])
                node1[i].add_child(node1[i].data.split("。"))
            for i in range(len(node1)):
                print(node1[i])
                #分短语
                # node2[i]=[]
                # for j in range(len(node1[i].children)):
                #     node2[i][j] = TreeNode(node1[i].children[j])
                #     node2[i][j]
if __name__=="__main__":
    with open(r"知识文本.txt", "r", encoding="utf-8") as f:
        text = f.read()
    tr=Tree_4 (text)
    tr.preorder_trav()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-6 14:48:47 | 显示全部楼层
方便复制:
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[0])
            #分句
            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[j] = TreeNode(node1.children[j])
                #     node2[j]
if __name__=="__main__":
    with open(r"知识文本.txt", "r", encoding="utf-8") as f:
        text = f.read()
    tr=Tree_4 (text)
    tr.preorder_trav()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-6 16:14:28 | 显示全部楼层
好歹把你的文本放出来给别人才好帮你调试嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-8 21:34:46 | 显示全部楼层
程序可以正常运行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-11 12:05:00 | 显示全部楼层
isdkz 发表于 2023-1-6 16:14
好歹把你的文本放出来给别人才好帮你调试嘛

  在过去的工程实践中,领域专家积累了大量知识和经验,这些知识能够对高维设计空间进行有效约减,实现采样数据的效用最大化,但由于流动机理复杂多变,知识的类型多样,缺乏有效的表征方法。
  本课题将气动知识从宏观到微观分为4个层次,如图 1所示,在第一个层次中,描述映射关系的基本属性,设计参数与设计目标之间映射关系的属性,例如,映射关系是否连续、有无突变、呈线性或非线性关系等;第二个层次用于描述特定设计变量与性能之间的单调关系,这种气动知识较为常见,领域专家很容易表达出来,例如法向力会随着攻角的增大而增大,但随着马赫数的增大而降低;第三个层次比第二个层次复杂得多,描述了特定特征和目标之间的形状关系,例如在攻角变化过程中,气动参数会以以L型降低,斜率也会发生一定变化;第四层,最后一个层次用于描述多个特征和目标之间的经验关系,即输入参数和输出参数之间的完整关系式,例如气动外形和气动力之间的经验公式。
  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-11 12:05:39 | 显示全部楼层
chinajz 发表于 2023-1-8 21:34
程序可以正常运行的

但是为什么我的会出现超出范围呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-11 12:06:16 | 显示全部楼层
夕阳袅袅 发表于 2023-1-11 12:05
  在过去的工程实践中,领域专家积累了大量知识和经验,这些知识能够对高维设计空间进行有效约减,实现 ...

不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 18:24:13 | 显示全部楼层
稍微改了一下:
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[j] = TreeNode(node1.children[j])
                #     node2[j]
if __name__=="__main__":
    with open(r"知识文本.txt", "r", encoding="utf-8") as f:
        text = f.read()
    tr=Tree_4 (text)
    tr.preorder_trav()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表