Python中如何使用sorted()函数?
Python中的sorted()函数是一个非常强大的函数,可以用于排序Python的list、tuple、str、和dict等多种数据类型。它可以用来对数据进行升序排序、降序排序或自定义排序。本文将介绍如何使用Python的sorted()函数。
一、语法
Python中的sorted()函数的语法如下:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable:可迭代对象。可以是列表、元组、字典、字符串等可迭代对象。
- key:用来排序的关键字,是可调用对象。常用的是lambda函数。默认值是 None,即默认按照可迭代对象中元素的自然顺序进行排序。
- reverse:判断排序方式,如果为True,则降序,False则升序。默认值为False。
二、对list进行排序
1. 升序排序
对于一个list中的元素进行排序,可以通过sorted()函数将其按照升序排序。
例如,我们要对一个list中的数值类型进行升序排序,代码如下:
list1 = [3,5,1,7,2,9]
print("升序排序:",sorted(list1))
结果输出:[1, 2, 3, 5, 7, 9]。
2. 降序排序
将一个list中的元素按照降序排序,可以通过设置reverse参数,使其为True。
例如,我们要对一个list中的数值类型进行降序排序,代码如下:
list1 = [3,5,1,7,2,9]
print("降序排序:",sorted(list1,reverse=True))
结果输出:[9, 7, 5, 3, 2, 1]。
3. 按照关键词排序
我们可以将关键词加入到sorted()函数的key参数中来完成按照关键词排序。
例如,我们要对一个list中的字符串类型进行按照长度排序,代码如下:
list1 = ["abc","dgfh","etqwrt","uyt"]
print("按照字符串长度排序:",sorted(list1,key = lambda x: len(x)))
结果输出:['abc', 'uyt', 'dgfh', 'etqwrt']。
4. 按照对象属性排序
如果需要按照类的属性排序,可以在key参数中加入lambda函数指定对象的属性,例如:
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return f"{self.name}:{self.grade}:{self.age}"
students = [
Student('John', 'A', 15),
Student('Jane', 'B', 12),
Student('Dave', 'B', 10),
Student('David', 'C', 13),
]
print("按年龄排序:",sorted(students, key=lambda x: x.age))
print("按分数排序:",sorted(students, key=lambda x: x.grade))
结果分别输出按年龄排序:[Dave:B:10, Jane:B:12, David:C:13, John:A:15] 和按分数排序:[John:A:15, Jane:B:12, Dave:B:10, David:C:13]。
三、对tuple进行排序
sorted()函数也同样适用于tuple排序。
例如,我们将tuple中的元素按升序排序,代码如下:
tuple1 = (3,5,1,7,2,9)
print("升序排序:",sorted(tuple1))
结果输出:[1, 2, 3, 5, 7, 9]
四、对str进行排序
对于字符串类型,使用sorted()函数可以很方便地进行排序。
例如,我们需要按照字母表顺序对字符串进行排序,代码如下:
str1 = "fjghdleda"
print("按字母表排序:",sorted(str1))
结果输出:['a', 'd', 'e', 'f', 'g', 'h', 'j', 'l']
五、对字典进行排序
对于字典类型,我们同样可以使用sorted()函数对其中的元素进行排序。
例如,我们需要按照字典的键(key)对字典进行排序:
dict1 = {"apple":5, "orange":7, "banana":3, "grape":4}
print("按键排序:", sorted(dict1)) # 输出按键排序: ['apple', 'banana', 'grape', 'orange']
执行结果是按照字典键的升序排序的。
如果需要按值进行排序,可以使用lambda函数指定字典的值作为排序字段,例如:
print("按值排序:", sorted(dict1.items(), key=lambda x: x[1])) # 按值排序:[('banana', 3), ('grape', 4), ('apple', 5), ('orange', 7)]
结果是按照值的升序排序的。
六、总结
本文主要介绍了Python中如何使用sorted()函数对list、tuple、str、和dict等多种数据类型进行排序。我们可以通过改变关键字、升序降序以及指定类的属性等多种方式进行排序,让我们更好地利用Python实现对数据的排序。
