Python:for循环比较当前与前一次迭代

0 投票
1 回答
2297 浏览
提问于 2025-05-01 01:35

我有一个循环,这个循环用冒泡排序的方法来排序一个字符串列表,每次循环的时候,列表都会稍微改变一下……有没有办法把上一次循环的结果和这一次的结果进行比较呢?

现在的情况是,它只是打印出每次循环的结果。我需要一种方法来记住上一次的结果,以便后面可以和最后一次的结果进行比较。

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

撰写回答