gpt4 book ai didi

python - 在python中打印排序和未排序的列表

转载 作者:行者123 更新时间:2023-11-28 21:41:10 41 4
gpt4 key购买 nike

我有一个代码可以生成一个数字列表,然后对其进行排序。排序功能有效,但我需要在排序后打印未排序的列表。这就是为什么我使用 print 函数来打印未排序的列表,而是打印已排序的列表。我以为我通过将未排序列表分配给变量来存储未排序列表,然后尝试在最后打印它。知道为什么它打印排序列表而不是未排序列表吗?我没有放置 GenerateNumbers() 函数,因为它的作用是为“numbers”变量提供一个未排序数字的列表。我正在使用插入排序。

def InsertionSort(sort_list):
print("Sorting numbers...")
for i in range(0, len(sort_list)-1):
for j in range(i+1,0,-1):
if(sort_list[j] < sort_list[j-1]):
temp = sort_list[j-1]
sort_list[j-1] = sort_list[j]
sort_list[j] = temp
print(sort_list)
else:
break
print("Finished sorting.")
print()
return sort_list

numbers = GenerateNumbers()
unsorted = numbers
sort_list = numbers

sorted_numbers = InsertionSort(sort_list)
print("unsorted list:", numbers)
print("sorted list:", sorted_numbers)

最佳答案

当你打电话的时候

unsorted = numbers
sort_list = numbers

您实际上并没有复制列表,您只是复制了对列表的引用。 unsordersort_list 都指向内存中的同一个列表。

要复制列表,您可以这样做:

sort_list = list(numbers)

现在 sort_list 指向内存中的一个新列表,您可以更改 sort_list 而无需更改 numbers

关于python - 在python中打印排序和未排序的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029843/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com