这个 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!)
...
我有下面的代码,它对通过函数传递的列表中的值进行冒泡排序。有人能告诉我 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!)
...