Python 列表中索引和位置的语义问题

问题描述 投票:0回答:1

为什么在关于 Python 列表的测验中,有这样一个代码:在列表的第三个位置插入一个值 (5)?

list1 = [11, 2, 23]
list1.insert(3,5)
print(list1)

难道不应该是 list1.insert(2,5) 因为,即使列表中的索引从 0 开始,第三个位置是,恕我直言,索引 2 ? 很抱歉这个可能是微不足道的问题(我是新手),但我认为当您询问列表中的第三个位置时,您不是指索引 3,而是指从左开始第三个位置的项目。

我尝试在 .insert() 中使用不同的值,但是,正如预期的那样,这并没有解决我的疑问

python list indexing position
1个回答
0
投票

查看 python shell 帮助命令

>>> help(list1.insert)

insert(index, object, /) method of builtins.list instance
    Insert object before index.

它插入到索引之前,而不是之后。如果你尝试

2
,它在索引 1 之后但在现有索引 2 之前,给你一个新的索引 2。如果你尝试
3
,它在 2 之后和 3 之前。但是因为没有 3,所以它只是放在清单的最后。

这一切都是有道理的。只要您在列表的当前范围内,“索引”就是插入后的索引。

© www.soinside.com 2019 - 2024. All rights reserved.