Python:用于比较当前迭代的当前循环

时间:2014-11-01 19:57:03

标签: python list for-loop compare iteration

我有一个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

谢谢一群人!

1 个答案:

答案 0 :(得分:2)

您可以在每次迭代后使用[:]创建列表的副本。虽然这段代码:

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

...只是在b中存储对同一列表的引用,此代码:

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

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