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

Python中如何使用sorted()函数?

发布时间:2023-05-21 14:33:49

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实现对数据的排序。