Python之列表和字典排序
在Python中,对列表(list)和字典(dictionary)进行排序是很常见的操作。
列表排序
列表排序可以使用 sort()
方法或 sorted()
函数。
使用 sort()
方法:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
#打印结果:
#[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
或者使用 sorted()
函数:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
#打印结果:
#[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
默认情况下,它们都是按照升序排序。如果你想按照降序排序,可以设置 reverse=True
:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)
#打印结果:
#[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
或者:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)
#打印结果:
#[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
还可以通过 key
参数指定一个函数,来按照特定的条件进行排序。例如,如果你有一个字符串列表,你可以按照字符串的长度进行排序:
my_list = ['apple', 'banana', 'cherry', 'date']
my_list.sort(key=len)
print(my_list)
#打印结果:
#['date', 'apple', 'banana', 'cherry']
字典排序
字典排序稍微复杂一些,因为字典是无序的。要排序字典,你需要将字典转换为列表,然后对列表进行排序。
例如,如果你有一个字典,并且想要按照键(key)进行排序:
my_dict = {'apple': 10, 'banana': 5, 'cherry': 20}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[0]) # 按键排序
print(sorted_dict)
#打印结果:
#[('apple', 10), ('banana', 5), ('cherry', 20)]
如果你想要按照值(value)进行排序:
my_dict = {'apple': 10, 'banana': 5, 'cherry': 20}
sorted_dict = sorted(my_dict.items(), key=lambda item: item[1]) # 按值排序
print(sorted_dict)
#打印结果:
#[('banana', 5), ('apple', 10), ('cherry', 20)]