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

沙皇卢克

我有一个代码,该代码生成一个数字列表,然后对其进行排序。排序功能有效,但我需要在排序后打印未排序的列表。这就是为什么我使用打印功能来打印未排序的内容,而是打印已排序的列表的原因。我以为我通过将未排序列表分配给变量来存储未排序列表,然后尝试最后打印出来。有什么想法为什么要打印排序列表而不是未排序列表?我没有放置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

您实际上并没有复制列表,只是将引用复制到列表。unsorder并且sort_list都指向在内存中的同一列表。

要复制列表,您可以执行以下操作:

sort_list = list(numbers)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章