Python中如何使用sorted函数?
在Python中,sorted函数是用来对一个可迭代对象进行排序的,它能够对列表、元组、字典等数据类型进行排序。
sorted语法:
sorted(iterable, key=None, reverse=False)
其中iterable表示要排序的可迭代对象,key为可选参数,用于指定排序的方式,reverse为可选参数,用于指定是否降序排列,一般默认为False,表示升序排列。
在使用sorted函数时,可以直接将要排序的可迭代对象传给函数,函数根据可迭代对象中每个元素的大小对其进行排序,并返回一个新的有序列表,原来的可迭代对象不受影响。
以下是sorted函数的几个示例:
1. 对列表进行排序
lst = [5, 3, 9, 1, 7] sorted_lst = sorted(lst) print(sorted_lst) # 输出 [1, 3, 5, 7, 9]
2. 对元组进行排序
tpl = (5, 3, 9, 1, 7) sorted_tpl = sorted(tpl) print(sorted_tpl) # 输出 [1, 3, 5, 7, 9]
3. 对字典进行排序(按键排序)
dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic)
print(sorted_dic) # 输出 ['a', 'b', 'c']
在对字典排序时,得到的结果是排好序的键列表。如果需要按照值来排序,则需要使用key参数来指定排序的方式。
4. 对字典进行排序(按值排序)
dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic.items(), key=lambda x: x[1])
print(sorted_dic) # 输出 [('a', 1), ('b', 2), ('c', 3)]
在上述示例中,使用了items方法将字典转换成一个由键值对元组组成的可迭代对象,然后使用了lambda表达式来指定排序的方式,即按照每个元组的第二个元素(值)进行排序。
需要注意的是,sorted函数返回的是一个新的列表,不对原有的对象进行排序。如果要对原有的对象进行排序,则需要使用sort方法。
以下是sort方法的几个示例:
1. 对列表进行排序
lst = [5, 3, 9, 1, 7] lst.sort() print(lst) # 输出 [1, 3, 5, 7, 9]
2. 对元组进行排序
元组是不可变类型,因此没有sort方法。
3. 对字典进行排序
dic = {'b': 2, 'c': 3, 'a': 1}
sorted_dic = sorted(dic.items(), key=lambda x: x[1])
print(sorted_dic) # 输出 [('a', 1), ('b', 2), ('c', 3)]
对字典进行排序时,需要使用items方法将字典转换成一个由键值对元组组成的可迭代对象,然后使用sorted函数对其进行排序并返回排序后的结果,最后重新赋值给原字典。
综上所述,sorted函数在Python中是一个非常有用的函数,它可以对可迭代对象进行排序,并返回一个新的有序列表。在使用时,需要注意参数的使用及返回的结果类型。
