为什么以下代码打印11238而不是11235?
num_list = [1,1,2,3,5,8,13]
for i in range(5):
print(num_list[num_list[i]])
13不在索引5中为什么? 5和13哪里消失了?
答案 0 :(得分:0)
因为您将num_list[i]
的结果作为索引传递给num_list
,因此在循环结束时num_list[4] == 5
和num_list[5] == 8
。
请注意,range(5)
会生成从0
到4
的数字。
如果您想以最pythonic的方式打印列表的前5个数字,可以使用简单的切片:
>>> print(num_list[:5])
[1, 1, 2, 3, 5]
或者使用拆包将它们从括号中打印出来:
>>> print(*num_list[:5])
1 1 2 3 5
答案 1 :(得分:0)
你的循环说:
print (num_list[num_list[0]])
print (num_list[num_list[1]])
print (num_list[num_list[2]])
print (num_list[num_list[3]])
print (num_list[num_list[4]])
这意味着:
print (num_list[1]) # since num_list[0] holds 1
print (num_list[1]) # since num_list[1] holds 1
print (num_list[2]) # since num_list[2] holds 2
print (num_list[3]) # since num_list[3] holds 3
print (num_list[5]) # since num_list[4] holds 5
表示:
print (1) # since num_list[1] holds 1
print (1) # since num_list[1] holds 1
print (2) # since num_list[2] holds 2
print (3) # since num_list[3] holds 3
print (8) # since num_list[5] holds 8
答案 2 :(得分:0)
因为您的代码错误,所以如果您希望结果是11235。 它应该是这样的:
num_list = [1,1,2,3,5,8,13]
for i in range(5):
print (num_list[i])
循环(num_list[num_list[i]])
会给你:
num_list[1]
,num_list[1]
,num_list[2]
,num_list[3]
和 num_list[5]
(等于8 )