【发布时间】:2020-09-07 22:51:27
【问题描述】:
我对一些 Python 基础知识感到困惑。 我有我的清单:
myList = ['a','b','c','d','e','f']
现在我想使用索引和范围打印这个列表:
for i in range(0, len(myList)):
print(myList[i])
我明白了:
a
b
c
d
e
f
我的第一个问题:为什么我不应该使用 len(myList)-1? len(myList) 返回 6 但是当我直接使用 print(myList[6]) 时出现超出范围错误。为什么在 for 循环中使用 this 会有所不同?
第二。我知道我可以使用 myList.reverse() 但我想像这样打印反向列表:
for i in range(len(myList), 0, -1):
print(myList[i])
我超出范围,我应该添加 -1:
for i in range(len(myList)-1, 0, -1):
print(myList[i])
但在此之后我只得到:
f
e
d
c
b
我的第二个问题:“a”在哪里? ;) 为什么在这个例子中我必须使用 len(myList)-1?
【问题讨论】:
-
range(0, n)变为 0, 1, 2, .... n-1(n 不包括在内) -
range(n, 0, -1)变为 n, n-1, n-2, .... 1(不包括 0)。点是:range不包括其端点。 -
请注意,习惯上只使用
for element in myList:和for element in reversed(myList):。同样,您可以通过打印i来检查range(len(myList))和其他元素。 -
len() 函数返回集合中元素的数量。因此,如果您有 6 个元素,则意味着最后一个索引将为 5。这就是您不能使用 myList[6] 的原因
标签: python