我有一个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
谢谢一群人!
答案 0 :(得分:2)
您可以在每次迭代后使用[:]
创建列表的副本。虽然这段代码:
a = [1, 2, 3]
b = a
...只是在b
中存储对同一列表的引用,此代码:
a = [1, 2, 3]
b = a[:]
...创建a
的完整副本并将其存储在b
中。因此,对a
的任何后续更改都不会影响b
。