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

按照指定规则排序列表元素:Python函数 sorted()

发布时间:2023-06-25 15:08:47

Python是一种流行的编程语言,它提供了一个广泛的标准库,包括用于排序列表元素的函数。这个函数称为sorted(),它接受一个列表作为参数,并返回按照指定规则排序后的新列表。

sorted()的最简单形式如下:

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

其中,iterable是要排序的列表,key是一个函数,用于指定排序规则。如果key未指定,则sorted()将按照默认的比较运算符(<)排序列表。reverse是一个布尔值,指定是否按照相反的顺序排序列表。

下面是一些示例,演示了如何使用sorted()函数对Python列表进行排序:

1. 对整数列表进行排序

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

sorted_numbers = sorted(numbers)

print(sorted_numbers)

输出:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

在这个例子中,sorted()函数按照默认的比较运算符(<)对整数列表进行排序。

2. 使用键函数对字符串列表进行排序

fruits = ["banana", "apple", "kiwi", "orange"]

sorted_fruits = sorted(fruits, key=len)

print(sorted_fruits)

输出:

['kiwi', 'apple', 'banana', 'orange']

在这里,我们给sorted()函数提供了一个键函数key=len,它将按照字符串的长度排序。

3. 使用降序排序对字符串列表进行排序

fruits = ["banana", "apple", "kiwi", "orange"]

sorted_fruits = sorted(fruits, key=len, reverse=True)

print(sorted_fruits)

输出:

['banana', 'orange', 'apple', 'kiwi']

在这个例子中,我们使用降序排列(reverse=True)按照字符串长度对水果列表进行排序。

4. 使用lambda函数排序元组列表

students = [("Alice", 23),

            ("Bob", 25),

            ("Charlie", 21),

            ("Dave", 27),

            ("Eve", 22)]

sorted_students = sorted(students, key=lambda student: student[1])

print(sorted_students)

输出:

[('Charlie', 21), ('Eve', 22), ('Alice', 23), ('Bob', 25), ('Dave', 27)]

在这个示例中,我们使用lambda函数来指定排序规则。这里,我们按照元组的第二个元素(即年龄)对学生列表进行排序。

5. 对字典列表进行排序

fruits = [{"name": "banana", "price": 0.25},

          {"name": "apple", "price": 0.40},

          {"name": "kiwi", "price": 0.35},

          {"name": "orange", "price": 0.30}]

sorted_fruits = sorted(fruits, key=lambda fruit: fruit["price"])

print(sorted_fruits)

输出:

[{'name': 'banana', 'price': 0.25}, {'name': 'orange', 'price': 0.30}, {'name': 'kiwi', 'price': 0.35}, {'name': 'apple', 'price': 0.4}]

在这个例子中,我们使用lambda函数按照水果价格对字典列表进行排序。

sorted()是Python的一个非常常用的函数,可以轻松地对各种类型的列表进行排序。使用键函数来指定排序规则是一个非常强大的功能,使得sorted()可以轻松地完成复杂的排序任务。