python中列表常见报错之超出列表范围

本文描述了一个Python代码片段,涉及空列表在尝试给特定位置赋值时出现的问题,解释了空列表只有一个位置,不能直接使用类似`id_dict1[int(id_news[0])]=id_news[1]`的方式,针对这个问题进行了分析和解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


id_dict1=[] #对于列表而言,初始为空的 可以用append或者等等方式添加,但是给一个位置加入元素会报错,我预计那种加入元素的方法前提是列表位数够
id_dict2=[] #相比于append,那种是会给列表扩宽位置的,空列表就一个位置,append会用的时候就扩宽,但给列表某个位置元素赋值不会,赋值但可能会超出列表范围

def init():  # 将config文件内的信息读入到字典中  获取文件信息
    f = open('data.txt')   #config.txt是同一目录的另外一个文件 第一行记录人的个数  第二行开始是标签以及人名
    global Total_ID
    Total_ID = int(f.readline())     #读取第一行的人的个数 读取字符串转为int类型

    for i in range(Total_ID+1):   #从0开始到 int(Total_ID)+1-1  有几行数据就设计好要循环几次
        line1 = f.readline()                #读取过了第一行 会从后面开始读 每次一行
        line=line1.rstrip("\n") #删除读取每行的换行符 这个删除方法是删除末尾的
        id_news= line.split(' ')          #line.split将字符串根据指定分隔符分割为子字符串,并生成一个列表,这里按空格分割
        id_dict1[int(id_news[0])] = id_news[1] #1 zhoujielun  按空格分割就是 id_news[0]='1' id_news[1]='zhoujielun'
        id_dict2[int(id_news[0])] = id_news[2] #比如我这里加一个提取出工号 """
    f.close() 

if __name__=='__main__':
	init()
	#print(Total_ID)
	print(id_dict1)
	print(id_dict2)

如上代码可以先自己理解下,这个代码运行报错,在定义一个空列表后给列表指定位置赋值会出现问题,因为空列表实际上就认定为一位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值