gpt4 book ai didi

python - 为什么要从这个列表的长度中减去一个?

转载 作者:行者123 更新时间:2023-11-28 22:32:24 30 4
gpt4 key购买 nike

我在网上看到这段代码,我需要帮助弄清楚它的作用!

words = ["hello", "world", "spam", "eggs"]
counter = 0
max_index = len(words) - 1

while counter <= max_index:
word = words[counter]
print(word + "!")
counter = counter + 1

-1 在此代码中的作用是什么?

最佳答案

Python 列表是零索引的。这意味着列表中的第一个索引由 0 而不是 1 访问。在您的代码中,正在计算列表的最大索引。

len() 内置函数返回列表的长度。但是,如果您尝试使用 len() 返回的值,Python 将引发一个 IndexError:

>>> l = ["hello", "world", "spam", "eggs"]
>>> l[len(l)]
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
l[len(l)]
IndexError: list index out of range
>>>

想象一下一系列的盒子,每个盒子都有一个元素。每个盒子的顶部都有相应的标签,底部有计数:

    0           1          2          3
|---------||---------||---------||---------|
| "hello" || "world" || "spam" || "eggs" |
|---------||---------||---------||---------|
1 2 3 4

盒子的数量是四个。有四个盒子。但是没有第四个指标,只有第三个指标。 Python 从第一个开始计算列表中“框”的数量。但是 Python 开始计算每个“框”的 索引 的数字为零。

这意味着列表的最大索引(您可以放入 [] 的最大数字)将始终比列表的长度小 1。所以要得到一个列表的最大索引,你必须从列表的长度中减去一个:

>>> l = ["hello", "world", "spam", "eggs"]
>>> l[len(l) - 1] # subtract one and this will work
'eggs'
>>>

关于python - 为什么要从这个列表的长度中减去一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40955743/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com