【Python入门教程】第30篇 列表sort()方法
2022/1/22 21:08:26
本文主要是介绍【Python入门教程】第30篇 列表sort()方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本篇我们介绍如何使用列表的 sort() 方法对元素进行排序。
列表 sort() 方法
如果想要对列表中的元素进行排序,可以使用 sort() 方法:
list.sort()
sort() 方法执行的是原地(in place)排序,意味着它会改变列表中元素的位置。
默认情况下,sort() 方法使用小于运算符对列表元素进行排序。也就是说,更小的元素排在前面,更大的元素排在后面。
如果想要对列表元素进行从大到小排序,可以指定参数 reverse=True。例如:
list.sort(reverse=True)
列表排序示例
接下来我们看几个使用 sort() 方法排序的示例。
示例一:字符串列表排序
如果列表的元素为字符串,sort() 方法按照字母顺序进行排序。
以下示例使用 sort() 方法对列表 guests 中的元素进行排序:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer'] guests.sort() print(guests)
输出结果如下:
['James', 'Jennifer', 'John', 'Mary', 'Patricia', 'Robert']
下面的示例使用 sort() 方法和 reverse=True 参数对列表 guests 中的元素进行反向排序:
guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer'] guests.sort(reverse=True) print(guests)
输出结果如下:
['Robert', 'Patricia', 'Mary', 'John', 'Jennifer', 'James']
示例二:数字列表排序
如果列表的元素为数字,sort() 方法按照从小到大的顺序进行排序。
以下示例使用 sort() 方法对列表 scores 中的数字从小到大进行排序:
scores = [5, 7, 4, 6, 9, 8] scores.sort() print(scores)
输出结果如下:
[4, 5, 6, 7, 8, 9]
如果想要对数字按照从大到小的顺序排序,可以使用 sort(reverse=True):
scores = [5, 7, 4, 6, 9, 8] scores.sort(reverse=True) print(scores)
输出结果如下:
[9, 8, 7, 6, 5, 4]
示例三:元组列表排序
假如存在以下由元组构成的列表:
companies = [('Google', 2019, 134.81), ('Apple', 2019, 260.2), ('Facebook', 2019, 70.7)]
现在我们想要按照收入从高到低对这些公司进行排序。
首先,指定一个排序关键字并传递给 sort() 方法。为了定义排序关键字,我们可以创建一个函数,参数为元组,返回值为排序的元素:
def sort_key(company): return company[2]
以上 sort_key() 函数接收一个名为 company 的参数并返回它的第三个元素。其中,company 是一个元组(例如 (‘Google’, 2019, 134.81)),company[2] 代表了收入(例如 134.81)。
然后,将 sort_key 函数传递给 sort() 方法:
companies.sort(key=sort_key, reverse=True)
sort() 方法会使用函数 sort_key() 返回的结果进行比较。
注意,我们只需要将函数名 sort_key 传递给 sort() 方法,函数名后面没有括号。
完整的代码如下:
companies = [('Google', 2019, 134.81), ('Apple', 2019, 260.2), ('Facebook', 2019, 70.7)] # define a sort key def sort_key(company): return company[2] # sort the companies by revenue companies.sort(key=sort_key, reverse=True) # show the sorted companies print(companies)
输出结果如下:
[('Apple', 2019, 260.2), ('Google', 2019, 134.81), ('Facebook', 2019, 70.7)]
使用 lambda 表达式
为了使代码更加精简, Python 允许定义没有名字的函数:
lambda arguments: expression
没有名字的函数被称为匿名函数,以上语句被称为 lambda 表达式。
从技术上来说,lambda 表达式等价于以下函数:
def name(arguments): return expression
以下示例使用 lambda 表达式按照收入从低到高进行排序:
companies = [('Google', 2019, 134.81), ('Apple', 2019, 260.2), ('Facebook', 2019, 70.7)] # sort the companies by revenue companies.sort(key=lambda company: company[2]) # show the sorted companies print(companies)
输出结果如下:
[('Facebook', 2019, 70.7), ('Google', 2019, 134.81), ('Apple', 2019, 260.2)]
总结
- 列表的 sort() 方法用于原地排序。
- sort() 方法对字符串使用字母顺序排序,对数字从小到大进行排序。
- sort(reverse=True) 用于反向排序。
这篇关于【Python入门教程】第30篇 列表sort()方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础