【发布时间】:2021-07-17 23:07:30
【问题描述】:
当我在阅读 Python Workshop 这本书时,关于冒泡排序算法的主题,我发现了这段代码:
l = [5, 8, 1, 3, 2]
still_swapping = True
while still_swapping:
still_swapping = False
for i in range(len(l) - 1):
if l[i] > l[i+1]:
l[i], l[i+1] = l[i+1], l[i]
still_swapping = True
根据我理解代码的前提,逐一比较值并以正确的顺序替换它们,我不明白这里发生了什么:
l[i], l[i+1] = l[i+1], l[i]
当然,我可以自己写这样的代码,这是我的初学者版本:
l = [5, 8, 1, 3, 2]
still_swapping = True
while still_swapping:
still_swapping = False
for i in range(len(l) - 1):
if l[i] > l[i+1]:
temp = l[i]
l[i] = l[i+1]
l[i+1] = temp
still_swapping = True
print(l)
但问题是,书中提供的代码的缩短版本是什么?正在进行什么样的操作?我不明白这里的语法。在本书的前几章中真的找不到。
提前致谢!
【问题讨论】:
标签: python bubble-sort