鱼C论坛

 找回密码
 立即注册
查看: 3714|回复: 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()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-6 14:48:47 | 显示全部楼层
方便复制:
  1. class TreeNode(object):
  2.     def __init__(self, data):
  3.         self.data = data
  4.         self.children = []
  5.     def add_child(self, obj):
  6.         self.children.append(obj)
  7. #四层结构
  8. class Tree_4(object):
  9.     def __init__(self, text):
  10.         self.root = TreeNode(text)
  11.     def preorder_trav(self):
  12.         if self.root.data ==None :
  13.             print("文本无内容!!")
  14.         else:
  15.             #分段
  16.             a=[]
  17.             a=self.root.data.split("\n")
  18.             for i in a:
  19.                 self.root.add_child(i)
  20.             print(self.root.children[0])
  21.             #分句
  22.             node1=[]
  23.             node2=[]
  24.             for i in range(len(self.root.children)):
  25.                 print(len(self.root.children),"mmm")
  26.                 node1=TreeNode(self.root.children)
  27.                 node1.add_child(node1.data.split("。"))
  28.             for i in range(len(node1)):
  29.                 print(node1)
  30.                 #分短语
  31.                 # node2=[]
  32.                 # for j in range(len(node1.children)):
  33.                 #     node2[j] = TreeNode(node1.children[j])
  34.                 #     node2[j]
  35. if __name__=="__main__":
  36.     with open(r"知识文本.txt", "r", encoding="utf-8") as f:
  37.         text = f.read()
  38.     tr=Tree_4 (text)
  39.     tr.preorder_trav()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-6 16:14:28 | 显示全部楼层
好歹把你的文本放出来给别人才好帮你调试嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-8 21:34:46 | 显示全部楼层
程序可以正常运行的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

但是为什么我的会出现超出范围呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

不好意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 18:24:13 | 显示全部楼层
稍微改了一下:
  1. class TreeNode(object):
  2.     def __init__(self, data):
  3.         self.data = data
  4.         self.children = []
  5.     def add_child(self, obj):
  6.         if obj:
  7.             self.children.append(obj)

  8. #四层结构
  9. class Tree_4(object):
  10.     def __init__(self, text):
  11.         self.root = TreeNode(text)
  12.     def preorder_trav(self):
  13.         if self.root.data == '' :         # 这里把 None 改成 ''
  14.             print("文本无内容!!")
  15.         else:
  16.             #分段
  17.             a=self.root.data.split("\n")
  18.             for i in a:
  19.                 self.root.add_child(i.strip())
  20.             #分句
  21.             self.node = []
  22.             for c in self.root.children:
  23.                 self.node.append(TreeNode(c))
  24.             for n in self.node:
  25.                 for i in n.data.split("。"):
  26.                     n.add_child(i)
  27.                 print(n.children)
  28.                 #分短语
  29.                 # node2=[]
  30.                 # for j in range(len(node1.children)):
  31.                 #     node2[j] = TreeNode(node1.children[j])
  32.                 #     node2[j]
  33. if __name__=="__main__":
  34.     with open(r"知识文本.txt", "r", encoding="utf-8") as f:
  35.         text = f.read()
  36.     tr=Tree_4 (text)
  37.     tr.preorder_trav()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 10:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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