Python:For循环将当前迭代与上一次迭代进行比较

Python:For循环将当前迭代与上一次迭代进行比较,python,list,for-loop,compare,iteration,Python,List,For Loop,Compare,Iteration,我在这里得到了一个for循环,它使用bubblesort对字符串列表进行排序,在每次迭代中,列表都会有一点变化。。。有没有办法将上一次迭代的结果与当前迭代的结果进行比较 它只是简单地打印每个迭代的产品。我需要一种方法来调用之前的产品,以便后者将其与上一次迭代的产品进行比较 lst = ["bubble", "bath", "with", "bacon"] def bubble(lst): unsorted = True while unsorted: unsor

我在这里得到了一个for循环,它使用bubblesort对字符串列表进行排序,在每次迭代中,列表都会有一点变化。。。有没有办法将上一次迭代的结果与当前迭代的结果进行比较

它只是简单地打印每个迭代的产品。我需要一种方法来调用之前的产品,以便后者将其与上一次迭代的产品进行比较

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

谢谢大家

您可以在每次迭代后使用
[:]
创建列表的副本。而此代码:

a = [1, 2, 3]
b = a
a = [1, 2, 3]
b = a[:]
…只需在
b
中存储对同一列表的引用,此代码:

a = [1, 2, 3]
b = a
a = [1, 2, 3]
b = a[:]

…创建
a
的完整副本并将其存储在
b
中。因此,对
a
的任何后续更改都不会影响
b

您只需在for循环之前添加
backup=lst[:]
即可轻松保存前一个列表的副本,但“比较”是什么意思?简单的平等比较?事实上是简单的平等比较,然后,如果它们不一样,就用它们来操纵,但我把它涵盖了。谢谢:)Python不需要临时变量来交换两项:
lst[j],lst[j+1]=lst[j+1],lst[j]