文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python中list.sort() 的用法

2023-10-24 07:43

关注
sort的基本用法

sort() 是 Python 列表对象的一个方法,它可以按升序(默认)或降序对列表中的元素进行排序。

以下是 sort() 方法的使用方法:

# 创建一个列表my_list= [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]​# 使用sort()方法对列表进行排序(升序)my_list.sort()​# 输出排序后的列表print(my_list)# Output: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

如果想要按照降序排序,可以传递 reverse=True 参数:

# 创建一个列表my_list= [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]​# 使用sort()方法对列表进行排序(降序)my_list.sort(reverse=True)​# 输出排序后的列表print(my_list)# Output: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

需要注意的是,sort() 方法会直接修改原始列表,而不是返回一个新的已排序列表。如果需要一个已排序的列表,可以使用 sorted() 函数:

# 创建一个列表my_list= [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]​# 使用sorted()函数返回一个已排序的列表(升序)sorted_list=sorted(my_list)​# 输出排序后的列表print(sorted_list)# Output: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
key参数的功能

在 Python 中,sort() 方法的 key 参数可以用来指定一个用于排序的函数。这个函数将被用于将列表中的每个元素映射为一个可排序的键。sort() 方法将使用这些键来进行排序,而不是直接比较列表中的元素。

下面是一个简单的例子,演示了如何使用 key 参数对一个包含字符串的列表进行排序,根据字符串的长度进行升序排序:

# 创建一个包含字符串的列表my_list= ["apple", "banana", "cherry", "date", "elderberry", "fig"]​# 按字符串长度对列表进行排序(升序)my_list.sort(key=len)​# 输出排序后的列表print(my_list)# Output: ['date', 'fig', 'apple', 'banana', 'cherry', 'elderberry']

在这个例子中,我们将一个名为 len 的内置函数作为 key 参数传递给 sort() 方法。这个函数接收一个字符串作为参数,并返回字符串的长度。因此,sort() 方法使用字符串的长度作为排序键,而不是直接比较字符串。

除了内置函数之外,我们还可以使用自定义函数作为 key 参数。下面是一个例子,使用自定义函数对一个包含元组的列表进行排序,根据元组的第二个元素进行降序排序:

# 创建一个包含元组的列表my_list= [(3, 5), (1, 2), (2, 6), (4, 1), (5, 5)]​# 按元组的第二个元素对列表进行排序(降序)defsort_key(elem):    returnelem[1]​my_list.sort(key=sort_key, reverse=True)​# 输出排序后的列表print(my_list)# Output: [(2, 6), (3, 5), (5, 5), (1, 2), (4, 1)]

在这个例子中,我们定义了一个名为 sort_key 的函数,并将其作为 key 参数传递给 sort() 方法。这个函数接收一个元组作为参数,并返回元组的第二个元素。sort() 方法使用这个函数返回的键来进行排序,而不是直接比较元组。最后,我们通过将 reverse 参数设置为 True 来进行降序排序。

在 Python 中,key 参数通常需要接收一个函数,该函数接收列表中的一个元素并返回一个可排序的键。当然,我们可以使用 lambda 表达式来定义一个简短的函数,它通常用于在一行内完成简单的排序操作。

lambda表达式代替def

以下是使用 lambda 表达式作为 key 参数进行排序的示例:

# 创建一个包含元组的列表my_list= [(3, 5), (1, 2), (2, 6), (4, 1), (5, 5)]​# 使用lambda表达式按元组的第二个元素对列表进行排序(升序)my_list.sort(key=lambdax: x[1])​# 输出排序后的列表print(my_list)# Output: [(4, 1), (1, 2), (3, 5), (5, 5), (2, 6)]

在这个例子中,我们使用 lambda 表达式 lambda x: x[1] 作为 key 参数传递给 sort() 方法。这个 lambda 表达式接收一个元组作为参数 x,并返回该元组的第二个元素,即 x[1]。sort() 方法使用这个返回值作为排序键进行排序。

需要注意的是,lambda 表达式只能用于定义简短的函数,而不能用于定义复杂的函数。如果需要定义复杂的函数,应该使用 def 语句来定义一个函数。

来源地址:https://blog.csdn.net/weixin_49146132/article/details/129456263

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯