首页 > 解决方案 > 列表索引混乱

问题描述

我知道python列表从0到n的值开始它的索引。所以就像列表 l 的第一个元素是 l[0] 等等。

想想这是非常微不足道的。然而,当事情变得混乱和复杂时,我发现自己很难找到正确的索引。由于这个事实,每次我想访问一个元素时,我都必须将长度补偿 +/- 1。

这看起来像一个简单的问题。但事实并非如此。有系统的方法可以解决这个问题吗?有没有办法从不同的角度看待这个问题?

标签: pythonlist

解决方案


当我向新手程序员教授元素索引的概念时,我使用的一个比喻是考虑尺子中的索引和数字。列表中的内容(或数组、向量、字符串等),作为放置在此标尺上的物理对象 - 比如说鹅卵石或任何东西。您将对象放在数字之间 - 而不是在它们的中间。所以第一个卵石位于 0 和 1 标记之间的空间中。第二个是1和2之间的空间。最后一个将在29和30标记之间的空间上,即使尺子是30厘米长——在30之后,规则就结束了,不能再有其他元素了放置。

这不仅有助于可视化元素如何从索引 0 开始,而且还有助于使用 Python 切片表示法,其中切片的末尾表示最多可以选择元素(而不是要选择的最后一个元素)。

因此,在列表中, lst[0:1] 将选择 0 和 1 标记之间的所有元素, lst[0:28] 将选择这些数字之间的元素,以及 [28:30] 之间的最后两个元素被排除在外。

(在不相关的说明中,我希望您实际上不要将l其用作变量名 - 一个字母的变量名通常不是一个好习惯,以良好的感觉为准,但l具体很难区分1,所以它使代码更难阅读)


推荐阅读