Python访问嵌套列表元素报IndexError索引越界是什么原因
IndexError 报错原因
首先拆解你给出的嵌套列表结构:
- 最外层是长度为150的大列表,每个元素都是独立的子列表
- 所有子列表的长度均为1,每个子列表内仅存储1个字典格式的交易记录。Python列表索引从0开始计数,因此这类子列表的合法索引只有
0,不存在索引为1的元素。
你执行的代码print(lst[0][1])运行逻辑如下:
lst[0]:取最外层大列表的第一个子列表,这一步逻辑合法,不会触发报错- 后续的
[1]:尝试在刚才取出的长度为1的子列表中访问索引为1的元素,该位置不存在任何值,超出了列表的索引范围,因此抛出IndexError: list index out of range错误。
正确访问示例
如果需要访问第一个子列表内存储的交易字典,索引需要从0开始编写:
# 访问第一条交易记录的完整字典 print(lst[0][0]) # 输出: {'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6', 'payment': 'PayPal'} # 访问第一条交易记录的金额字段 print(lst[0][0]['money']) # 输出: 158.0
小提示:Python里列表、元组这类有序序列的索引都是从0开始计数,访问元素前可以先用
len()查下对应序列的长度,能避免大部分索引越界问题。
内容的提问来源于stack exchange,提问作者The Sonics
相关产品推荐
相关产品推荐

