使用Python的sorted()函数对列表进行排序并保留原始列表
Python是一种现代、功能强大且简单易用的编程语言,它提供了广泛的内置函数来使编程更加便捷。一个非常有用的内置函数就是sorted(),它可以对列表进行排序,从而使列表中元素按照升序或降序排列。与其他编程语言一样,Python内置的sorted()函数可以通过指定关键字参数来实现不同的排序方法和方式。本文将介绍如何使用Python中的sorted()函数对列表进行排序,以及如何在排序的同时保留原始的列表。
使用sorted()函数对列表进行排序
对于一个被定义好的列表,我们可以使用sorted()函数对其进行排序。例如,我们有如下的一个列表:
lst = [4, 2, 6, 8, 1, 9]
若我们要对该列表进行升序排序,可以使用sorted()函数进行处理,代码如下:
sorted_lst = sorted(lst)
print(sorted_lst)
运行结果为:
[1, 2, 4, 6, 8, 9]
通过上述代码,我们可以看到列表lst已经排好序,并存储在sorted_lst中。该函数默认按照升序排序,如果想按照降序排序,可以指定关键字参数“reverse=True”,代码如下:
sorted_lst = sorted(lst, reverse=True)
print(sorted_lst)
运行结果为:
[9, 8, 6, 4, 2, 1]
如果我们只想对原始列表进行排序,而不改变其原始结构,就可以将sorted()函数放在一个变量中。例如,将排好序的列表存储在sorted_lst中,原始列表lst不变,代码如下:
lst = [4, 2, 6, 8, 1, 9]
sorted_lst = sorted(lst)
print(sorted_lst)
print(lst)
运行结果为:
[1, 2, 4, 6, 8, 9]
[4, 2, 6, 8, 1, 9]
在sorted_lst变量中存储了排好序的列表,而原始列表lst没有改变。
使用sorted()函数对字典进行排序
除了对于列表的排序,Python中的sorted()函数也可以对字典进行排序。在Python中,字典的排序是指按照其值进行排序,而不是按照键进行排序。例如,我们有如下的一个字典:
dict = {'a':4, 'b':2, 'c':6, 'd':8, 'e':1, 'f':9}
若我们要按照字典中的值进行升序排序,可以使用sorted()函数进行处理,代码如下:
sorted_dict = sorted(dict.items(), key=lambda x: x[1])
print(sorted_dict)
运行结果为:
[('e', 1), ('b', 2), ('a', 4), ('c', 6), ('d', 8), ('f', 9)]
在上述代码中,我们使用items()函数将字典转换为元组列表,然后使用lambda表达式指定了按照元组的第二个值排序。
如果我们要按照字典中的值进行降序排序,可以指定关键字参数“reverse=True”,代码如下:
sorted_dict = sorted(dict.items(), key=lambda x: x[1], reverse=True)
print(sorted_dict)
运行结果为:
[('f', 9), ('d', 8), ('c', 6), ('a', 4), ('b', 2), ('e', 1)]
在上述代码中,我们指定了按照元组的第二个值进行降序排序。
保留原始列表
有时候,在对列表进行排序时,我们也希望保留原始列表。这样可以在排序后比较两个列表的差异,或者对比排序后的结果和排序前的结果。
要保留原始列表,最简单的方法就是将原始列表复制一份,然后对副本进行排序。在Python中,有不同的复制方法,如切片复制、列表复制、浅复制和深复制。在这里我们将使用切片复制。以下的例子中将展示如何用切片复制保留原始列表。
lst = [4, 2, 6, 8, 1, 9]
original_lst = lst[:] # 复制原始列表
sorted_lst = sorted(lst) # 将列表排序
print(original_lst)
print(sorted_lst)
运行结果为:
[4, 2, 6, 8, 1, 9]
[1, 2, 4, 6, 8, 9]
在上述代码中,原始列表被复制到original_lst中,这样,当我们对lst进行修改时,original_lst依然保留着原始列表的值。
总结
本文介绍了如何使用Python中内置的sorted()函数对列表进行排序,并保留原始列表的值。
在排序列表时,可以通过指定reverse=True关键字参数来实现降序排序。此外,在排序字典时,也可以按照值来进行排序,而不是按照键进行排序。
当进行列表排序时,为了保留原始的列表,可以将原始列表复制一份,并对复制品进行排序,而不是对原始列表进行排序。
