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

标签 python list sorting random printing

我有一个代码可以生成一个数字列表,然后对其进行排序。排序功能有效,但我需要在排序后打印未排序的列表。这就是为什么我使用 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/

相关文章:

javascript - 根据数组排序

java - 对单词字符进行排序的问题

sorting - SublimeText - 按字母顺序对 json 列表进行排序

r - 在嵌套列表中从第一个列表中选择第一个元素,从第二个列表中选择第二个元素,依此类推

c# - 如何查找 List 在 List<string> 中有重复值

Python 链式 get() 方法与 JSON 中的列表元素

Python - 并行命令

python - ubuntu pygame 窗口没有显示

python - python 2.5 是否具有与 Tcl 的 uplevel 命令等效的功能?

python - read_csv 读取分类值?