我知道使用它可能没有任何意义,但我对它为何如此工作感兴趣。 为什么从4开始呢?为什么它不包括10?为什么我们超出范围?
n=[2, 3, 4, 7, 9, 10]
for a in n:
print (n[a])
Output
4
7
9
Traceback (most recent call last):
File "D:\PyPro\new1.py", line 3, in <module>
print (n[a])
IndexError: list index out of range
答案 0 :(得分:1)
所以当你这样做时
for a in n:
a变量将是列表中的元素,按顺序为2,3,4,7,9,10
因此,如果您想从列表中打印,那么
for a in n:
print(a)
或者你可以做到
for a in range(len(a)):
print(n[a])
在这种情况下,a将为0,1,2,3,4,5
答案 1 :(得分:1)
因此,当您在列表的方括号内放置内容时,它会引用列表中元素的位置。
在你的例子中:
n=[2, 3, 4, 7, 9, 10]
for a in n: ## Here 'a' refers to list element
print (n[a]) ## Here 'a' refers to position of element
迭代1:
a是列表n的第一个元素,因此a = 2
但是当你打印时你写a作为一个位置,因为a = 2,因此它指的是位置3(在python索引中从0开始,因此0,1,2)
因此打印等于4的n [2]
类似地 应打印n [3],n [4],n [7],n [9]和n [10]。
但是因为n中的索引最多为5,所以在n [7]
时会出现错误所以输出是:
4 ##print (n[2])*
7 ##print (n[3])*
9 ##print (n[4])*
*仅用于解释,而不是实际输出
答案 2 :(得分:0)
您正在使用该值作为索引。 所以不要经过0,1,2,3,4,5的范围...... 你正在通过索引编号:2,3,4,7超出范围。 它应该是:
for a in n:
print(a)