欢迎访问宙启技术站
智能推送

使用Python的sorted()函数对列表进行排序并保留原始列表

发布时间:2023-05-26 02:45:56

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关键字参数来实现降序排序。此外,在排序字典时,也可以按照值来进行排序,而不是按照键进行排序。

当进行列表排序时,为了保留原始的列表,可以将原始列表复制一份,并对复制品进行排序,而不是对原始列表进行排序。