Python:for循环比较当前与前一次迭代
我有一个循环,这个循环用冒泡排序的方法来排序一个字符串列表,每次循环的时候,列表都会稍微改变一下……有没有办法把上一次循环的结果和这一次的结果进行比较呢?
现在的情况是,它只是打印出每次循环的结果。我需要一种方法来记住上一次的结果,以便后面可以和最后一次的结果进行比较。
lst = ["bubble", "bath", "with", "bacon"]
def bubble(lst):
unsorted = True
while unsorted:
unsorted = False
for j in range(len(lst) - 1):
if lst[j] > lst[j + 1]:
hold = lst[j + 1]
lst[j + 1] = lst[j]
lst[j] = hold
print(lst)
unsorted = True
非常感谢大家!
1 个回答
2
你可以在每次循环后用 [:]
来创建列表的一个副本。像这样的代码:
a = [1, 2, 3]
b = a
...只是把同一个列表的引用存储在 b
中,而这段代码:
a = [1, 2, 3]
b = a[:]
...则是创建了 a
的一个完整副本,并把它存储在 b
中。因此,之后对 a
的任何修改都不会影响到 b
。