我有下面的代码,它通过函数传递列表中的值。有人能告诉我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)
答案 0 :(得分:0)
当some_list[i]
是Python i
对象实例的名称时,表达式some_list
将计算为list
值。
在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!)
...