python sort函数自定义排序逻辑

在Python中,sort() 方法和 sorted() 函数都提供了一个 key 参数,该参数允许你指定一个函数来确定排序的依据。lambda 是一个创建匿名函数(即没有名字的函数)的快捷方式,它经常与 key 参数一起使用,以提供简单的排序逻辑。

key 参数接收一个函数,这个函数接收一个元素作为输入,并返回一个值,这个值将被用于排序。换句话说,你可以使用 key 参数来告诉 sort() 或 sorted() 如何比较元素。

假设你有一个列表,包含字符串,你想根据字符串的长度来排序:

words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)  # 输出: ['date', 'apple', 'cherry', 'banana']

在这个例子中,lambda x: len(x) 是一个匿名函数,它接收一个字符串 x 作为输入,并返回该字符串的长度。sorted() 函数使用这个长度值来对列表进行排序。

复杂的排序逻辑

你也可以使用更复杂的 lambda 函数来实现更复杂的排序逻辑。例如,假设你有一个包含元组的列表,你想根据元组的第二个元素进行排序:

items = [(1, 3), (2, 1), (3, 2)]
sorted_items = sorted(items, key=lambda x: x[1])
print(sorted_items)  # 输出: [(2, 1), (3, 2), (1, 3)]

在这个例子中,lambda x: x[1] 是一个匿名函数,它接收一个元组 x 作为输入,并返回该元组的第二个元素。sorted() 函数使用这个值来对列表进行排序。

总结

key=lambda 参数允许你以非常灵活的方式对列表进行排序。你可以使用任何可以接收一个元素作为输入并返回一个值的函数作为 key 参数。lambda 函数是一个创建这种简单函数的便捷方式。

另外,补充两点:

1. python列表,元组或字符串的比较逻辑是,假如 A 和 B 是两个列表,元组或字符串,从左至右逐个的对A和B中所有元素比较,当出现第一个不相同的元素时,比较A与B在该位置上元素的大小关系,若A中该元素大于B相同位置的元素,则A > B,否则A < B,当比较到最后一个元素均相同时,此时A = B。

2. 两种sort函数的区别:

list.sort(key = )

sorted.list = sorted(list, key = )

  • 20
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值