谁能解释一下这个完整程序的内部工作原理,比如我到达列表的最后一项之后发生了什么,第三行输出之后发生了什么? :)
list1 = [1,2,4,5]
for i,x in enumerate(list1):
for y,z in enumerate(list1[i+1:],i+1):
print(y,z)
输出:
1 2
2 4
3 5
2 4
3 5
3 5
Exit code: 0
答案 0 :(得分:1)
enumerate(some_list, start=0)
将以 (index, list[index]) 的形式返回一个元组,有助于跟踪当前循环中使用的某些可迭代项中的项目索引。如果您指定 start
值(您在第 3 行的情况下正在执行此操作),则索引变量将从您指定的该值开始。
例如,让我们看看第一次迭代。
i,x = (0,1)
在这种情况下,您将在第 3 行拨打 enumerate(list1[0+1:], start=1)
。
这意味着 y,z 将被赋值
y,z = (1, 2)
# the 1 is because start=1, the 2 is because you are taking a slice
# of the original list1 starting at index position 1 corresponding to the number 2
不确定这是否能回答您的问题。
您可以使用 help(enumerate)
(或将 enumerate 替换为任何函数)来获取有关函数内部工作的更多信息(参数、返回的内容等)