如何按 运行 彻底排序列表的每个元素?
How do I sort the list by running thorough every element?
根据图像,我的代码应该 运行 'k' 12 次,即使列表已经在第 7 步排序。但是,我的代码只运行就实现了6次排序列表。怎么才能按图做运行12次呢?
此外,我必须计算排序 'k' 所需的步骤数,所以我使用了枚举,但输出为 0 0 0 1 1 2。我需要它来给我输出 12。我做错了什么吗?
def sorting_function(k):
for index, i in enumerate(range(len(k))):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
print(index)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)
您的行 print(index)
是缩进的,这意味着它仅在要交换值时打印。
循环迭代 12 次,但不需要在每次循环时都交换值。
我相信它应该像这样工作。
def sorting_function(k):
for index, i in enumerate(range(len(k))):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
print(index)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)
如果你想要输出“12”,创建一个计数器变量并在每个循环中递增它,然后在 print(k)
之后打印它。
编辑:
您可以使用计数器来跟踪内循环运行的总次数,而不是使用枚举:
def sorting_function(k):
counter = 0
for i in range(len(k)):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
counter=counter+1
print(counter)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)
此外,我必须计算排序 'k' 所需的步骤数,所以我使用了枚举,但输出为 0 0 0 1 1 2。我需要它来给我输出 12。我做错了什么吗?
def sorting_function(k):
for index, i in enumerate(range(len(k))):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
print(index)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)
您的行 print(index)
是缩进的,这意味着它仅在要交换值时打印。
循环迭代 12 次,但不需要在每次循环时都交换值。
我相信它应该像这样工作。
def sorting_function(k):
for index, i in enumerate(range(len(k))):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
print(index)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)
如果你想要输出“12”,创建一个计数器变量并在每个循环中递增它,然后在 print(k)
之后打印它。
编辑:
您可以使用计数器来跟踪内循环运行的总次数,而不是使用枚举:
def sorting_function(k):
counter = 0
for i in range(len(k)):
for num in range(len(k) - 1):
if k[num] > k[num+1]:
k[num], k[num+1] = k[num+1], k[num]
counter=counter+1
print(counter)
k = [4, 3, 2, 1]
sorting_function(k)
print(k)