python list插入函数为何允许我输入超出范围的索引?
my_list = [1,2,3]
my_list.insert(-5, 99)
预期结果:索引超出范围
实际结果:99 被插入到 my_list[0]
位置
print(my_list) # output: [99, 1, 2, 3]
del my_list[0]
my_list.insert(6, 99)
预期结果:索引超出范围
实际结果:99 被插入到 my_list[3]
位置
print(my_list) # output: [1, 2, 3, 99]
1 个回答
0
为什么:这是insert()
方法的设计方式。
简单解释一下步骤:
my_list.insert(-5, 99)
这个操作是在索引-5的位置插入99,但这个索引超出了范围,所以99被放到了列表的开头。这就是为什么99会被插入到my_list[0]
的位置,最终结果是 output: [99, 1, 2, 3]
del my_list[0]
这个操作是删除第一个元素。所以现在的结果是 output: [1, 2, 3]
my_list.insert(6, 99)
这个操作是在索引6的位置插入99,但这个索引同样超出了范围,所以99被放到了列表的末尾。这就是为什么99会被插入到my_list[3]
的位置,最终结果是 output: [1, 2, 3, 99]