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

Python列表和字典的排序函数使用方法

发布时间:2023-06-27 01:45:40

Python是一种高级编程语言,内置了对数据结构集合的支持,其中包括列表和字典。在处理数据时,我们通常需要对数据进行排序,以使其更易于处理和分析。Python中提供了内置的排序函数,用于对列表和字典进行排序。

一、Python列表排序

在Python3中,可以使用sort()和sorted()函数对列表进行排序。

1.sort()函数

sort()函数原地对列表进行排序,即不生成新的列表。语法格式如下:

list.sort(key=None, reverse=False)

其中key参数是一个可选的函数,用于指定排序关键字;reverse参数是一个可选的布尔值,如果为True表示降序排序,如果为False表示升序排序。

示例代码:

list1 = [5, 3, 8, 6, 7, 2]

list1.sort()

print(list1)  # [2, 3, 5, 6, 7, 8]

按照列表中元素的绝对值进行排序:

list2 = [-4, 1, 10, -8, -3]

list2.sort(key=abs)

print(list2)  # [1, -3, -4, -8, 10]

按照列表中元素的长度进行排序:

list3 = ['abc', 'a', 'bcde', 'de']

list3.sort(key=len)

print(list3)  # ['a', 'de', 'abc', 'bcde']

2.sorted()函数

sorted()函数不会改变原来的列表,而是返回一个新的已经排序好的列表。语法格式如下:

sorted(iterable, key=None, reverse=False)

其中iterable参数是需要排序的序列,可以是列表、元组、字符串等;key参数和reverse参数与sort()函数的参数相同。

示例代码:

list1 = [5, 3, 8, 6, 7, 2]

new_list1 = sorted(list1)

print(new_list1)  # [2, 3, 5, 6, 7, 8]

按照列表中元素的绝对值进行排序:

list2 = [-4, 1, 10, -8, -3]

new_list2 = sorted(list2, key=abs)

print(new_list2)  # [1, -3, -4, -8, 10]

按照列表中元素的长度进行排序:

list3 = ['abc', 'a', 'bcde', 'de']

new_list3 = sorted(list3, key=len)

print(new_list3)  # ['a', 'de', 'abc', 'bcde']

二、Python字典排序

在Python3中,可以使用sorted()函数对字典进行排序。

1.按照键进行排序

语法格式如下:

sorted(iterable, key=None, reverse=False)

其中iterable参数是需要排序的序列,这里指字典的键;key参数和reverse参数与sort()函数的参数相同。

示例代码:

dict1 = {'banana': 3, 'apple': 1, 'orange': 2, 'kiwi': 5}

new_dict1 = dict(sorted(dict1.items()))

print(new_dict1)  # {'apple': 1, 'banana': 3, 'kiwi': 5, 'orange': 2}

按照键的长度进行排序:

dict2 = {'banana': 3, 'apple': 1, 'orange': 2, 'kiwi': 5}

new_dict2 = dict(sorted(dict2.items(), key=lambda x: len(x[0])))

print(new_dict2)  # {'kiwi': 5, 'apple': 1, 'orange': 2, 'banana': 3}

2.按照值进行排序

与按照键进行排序类似,只需指定sorted()函数的key参数为lambda x: x[1],表示按照字典的值进行排序。示例代码如下:

dict3 = {'banana': 3, 'apple': 1, 'orange': 2, 'kiwi': 5}

new_dict3 = dict(sorted(dict3.items(), key=lambda x: x[1]))

print(new_dict3)  # {'apple': 1, 'orange': 2, 'banana': 3, 'kiwi': 5}

需要注意的是,排序后得到的是元组的列表,需要再用dict()函数将其转化为字典。

总结:Python在处理数据时,内置了强大的集合支持,包括列表和字典。我们可以通过sort()、sorted()和sorted(iterable, key=None, reverse=False)等函数对集合中的元素进行排序。需注意的是,在对字典进行排序时,需要将字典转化为元组列表才能进行排序,再将结果转化为字典。