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

Python 这个for循环如何知道要对哪个列表进行排序?,python,for-loop,Python,For Loop,下面的代码对通过函数传递的列表中的值进行冒泡排序。有人能告诉我for循环是如何遍历正在通过函数传递的列表的吗?我认为for循环应该说 因为我的价值观 但是它说 对于0,n-1范围内的i 当some_list是Python列表对象实例的名称时,表达式some_list[i]计算为第i个值 在Python中,编写以下内容是有效的: for elem in some_list: ... 并期望直接对列表的值进行操作,在每次迭代中,列表的值将由elem或您选择的任何循环变量表示 在列表的索引范

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

因为我的价值观

但是它说

对于0,n-1范围内的i

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

在Python中,编写以下内容是有效的:

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

在列表的索引范围内迭代并在需要适当元素的点访问循环中的列表同样有效:

for i in range(0, len(some_list)-1):
    elem = some_list[i]
    ...
您甚至可以使用枚举函数进行迭代,同时跟踪数组中的当前索引和该位置的元素:

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

... 然后索引到其中,即值[i]和值[j]。0在范围中是隐式的,可以等效地使用rangen-1气泡排序是一种原位算法。因此,必须交换列表中要排序的元素。为此,您需要迭代元素的索引。这就是为什么循环引用索引范围而不是原始数组。
for i, elem in enumerate(some_list):
    some_list[i] == elem #True, unless you've mutated the list (don't!)
    ...