为什么 list[x] 每次都转到 python 中的下一个元素?

why does list[x] go to the next element in python every time?

我正在尝试创建一个将执行 SSTF 调度的代码,并且我正在弄清楚如何启动该代码。我的老师提供了其他磁盘调度代码示例来帮助我们,他使用此代码正确地移动数字列表以实现先到先得的磁盘调度算法,以便进行数学运算并获得正确的移动次数.我知道它在做什么我只是不知道如何,requests[x] 每次都能转到下一个数字吗?因为对我来说,我觉得它只会转到随机数或总是在前面的数字(所以如果它的 [0,1,2,3] 它总是显示 0)。这是他的代码:

for x in range(len(requests)):
        movement += abs(position - requests[x])
        position = requests[x]
        print ("Servicing " + str(position))

所以正如我所说,我确切地知道代码在说什么和做什么我只是不明白 [x] 部分如何总是知道转到下一个数字。 如果您需要 requests : requests = [2069, 1212, 2296, 2800, 544, 1618, 356, 1523, 4965, 3681]

的列表

代码在循环中:

for x in range(len(requests)):
    movement += abs(position - requests[x])
    position = requests[x]
    print("Servicing " + str(position))

for x in range 行中,我们声明循环遍历 range(len(requests)) 中的每个值。

len(requests)requests 数组的长度 - 其中的元素数。所以对于 requests = [2069, 1212, 2296]len(requests) 将是 3。

range() 给出从零到参数的所有整数的数组,但不包括参数。所以 range(len(requests))range(3),它给出 [0, 1, 2]。我们正在遍历每个值。

第一次循环的代码是运行、x = 0。这意味着 position = requests[0]requests 数组中的第一个元素。

第二次,x = 1。这意味着 position 设置为 requests[1],第二个元素。第三次,x = 2,第三个元素,以此类推

x 只是为循环的每次迭代采用不同的值 - 这给出了您询问的行为。