这个 for 循环如何知道要对哪个列表进行排序?

How does this for loop know which list to sort through?

我有下面的代码,它对通过函数传递的列表中的值进行冒泡排序。有人能告诉我 for 循环如何知道通过函数传递的列表吗?我认为 for 循环应该说

for i in values

但它说的是

for i in range(0,n-1).

def bubbleSort(values):
    n = len(values)
    for i in range(0,n-1):
        for j in range(0,n-1):
            if values[j] > values[j +1]:
                values[j],values[j+1] = values[j+1],values[j]


someValues = [22, 10, 3, 84, 5, 12]
bubbleSort(someValues)
print(someValues)

some_list 是 Python list 对象实例的名称时,表达式 some_list[i] 的计算结果为第 i 个值。

在Python有效写:

for elem in some_list:
    ...

并期望直接对列表的值进行操作(在每次迭代中,将由 elem 或您选择的任何循环变量表示)。

遍历 list 的索引范围并在需要适当元素的点访问循环内的 list 同样有效:

for i in range(0, len(some_list)-1):
    elem = some_list[i]
    ...
通过使用enumerate 函数:

for i, elem in enumerate(some_list):
    some_list[i] == elem #True, unless you've mutated the list (don't!)
    ...