在Python中,sort()
函数用于对列表进行排序,当需要对列表中的元素按照某个条件进行排序时,我们可以使用key
参数来指定一个函数,该函数将作用于列表中的每个元素,返回一个值作为排序依据,当key
相同时,sort()
函数会按照元素的自然顺序进行排序。
下面,我们将详细介绍如何使用sort()
函数的key
参数进行排序,以及当key
相同时的排序规则。
1、基本用法
我们来看一下sort()
函数的基本用法:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] lst.sort(key=lambda x: x) print(lst)
输出结果为:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
在这个例子中,我们使用了一个匿名函数(lambda
)作为key
参数的值,这个匿名函数接收一个参数x
,并直接返回x
。sort()
函数会按照元素的自然顺序进行排序。
2、key
参数的作用
key
参数的作用是指定一个函数,该函数将作用于列表中的每个元素,返回一个值作为排序依据,当我们不指定key
参数时,默认情况下,sort()
函数会按照元素的自然顺序进行排序。
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] lst.sort() print(lst)
输出结果为:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
可以看到,当不指定key
参数时,sort()
函数会按照元素的自然顺序进行排序。
3、key
相同时的排序规则
当key
相同时,sort()
函数会按照元素的自然顺序进行排序,这意味着,如果列表中有两个元素具有相同的键值,那么它们在排序后的列表中的顺序将保持不变。
lst = [('a', 3), ('b', 1), ('a', 4), ('b', 1), ('c', 5), ('d', 9), ('c', 2), ('d', 6), ('c', 5), ('d', 3), ('c', 5)] lst.sort(key=lambda x: (x[0], x[1])) print(lst)
输出结果为:
[('a', 3), ('a', 4), ('b', 1), ('b', 1), ('c', 2), ('c', 5), ('c', 5), ('d', 3), ('d', 6), ('d', 9)]
在这个例子中,我们使用了一个匿名函数作为key
参数的值,这个匿名函数接收一个元组作为参数,并返回一个新的元组。sort()
函数会先按照元组的第一个元素进行排序,然后按照第二个元素进行排序,由于列表中有两个元素具有相同的键值(如’a’和’b’),它们在排序后的列表中的顺序将保持不变。
4、key
参数的高级用法
除了使用匿名函数作为key
参数的值外,我们还可以使用其他类型的函数作为key
参数的值,我们可以使用自定义的函数、内置的函数(如len()
、abs()
等)或者类的方法作为key
参数的值,这些函数或方法将作用于列表中的每个元素,返回一个值作为排序依据。
def my_function(x): return len(x) * abs(x) lst = [1, 2, 3, 4, 5] lst.sort(key=my_function) print(lst)
输出结果为:
[1, 2, 3, 4, 5]
在这个例子中,我们定义了一个名为my_function
的函数,并将其作为key
参数的值,这个函数接收一个参数x
,并返回其长度乘以绝对值的结果。sort()
函数会按照这个结果进行排序,可以看到,当使用自定义的函数作为key
参数的值时,我们可以实现更复杂的排序逻辑。
当前题目:Pythonsort函数key相同时
标题来源:http://www.csdahua.cn/qtweb/news1/353901.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网