python list插入函数为何允许我输入超出范围的索引?

-1 投票
1 回答
33 浏览
提问于 2025-04-14 17:04
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]

撰写回答