Lambda 在 Python 中排序——如何对列表进行 Lambda 排序

这篇具有很好参考价值的文章主要介绍了Lambda 在 Python 中排序——如何对列表进行 Lambda 排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python sort lambda,python,信息可视化,爬虫,Powered by 金山文档

该sort()方法和sorted()函数让您可以按升序或降序对列表和元组等可迭代数据进行排序。

它们采用参数,您可以使用这些参数修改它们执行排序的方式。适用于所有版本 32 位 + 64 位 (2023) 的 Windows 7 产品密钥其中一个参数可以是一个函数,甚至是一个 lambda 函数。

在本文中,您将学习如何使用 lambda 函数对列表进行排序。

我们将涵盖的内容

  • 如何在 Python 中对列表进行排序

  • 什么是 Lambda 函数?

  • 如何使用 Lambda 函数对列表进行排序如何使用sort()方法进行 Lambdasort如何使用sorted()函数进行 Lambdasort

  • 结论

如何在 Python 中对列表进行排序

sort()您可以使用方法和函数对列表进行排序sorted()。

该sort()方法有两个参数——key和reverse。可以使用一个函数作为key,但是reverse参数只能取一个Boolean。

如果将反向参数的值指定为True,则该sort()方法将按降序进行排序。如果您指定falseas 的值reverse,则排序将按升序排列。您甚至不需要将 false 指定为值,因为它是默认值。

但是这两个参数都是可选的,所以没有它们该方法仍然可以正常工作:

name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original names:", name_list) # Original names: ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']


name_list.sort()
print("Sorted names:", name_list) # Sorted names: ['Ben Benson', 'John Ann', 'Luigi Austin', 'Zen Jack']


num_list = [34, 11, 35, 89, 37]
print("Original numbers:", num_list) # Original numbers: [34, 11, 35, 89, 37]


num_list.sort()
print("Sorted numbers:", num_list) # Sorted numbers: [11, 34, 35, 37, 89]

sorted()另一方面,该功能也像sort(). 它也接受可选的key和参数,但它接受你想要排序的可迭代对象的强制参数——这使得它非常适合对列表之外的其他可迭代对象进行排序。reverse

该函数的工作原理如下sorted():

name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original names:", name_list) # Original names: ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']


sorted(name_list)
print("Sorted names:", name_list) # Sorted names: ['Ben Benson', 'John Ann', 'Luigi Austin', 'Zen Jack']


num_list = [34, 11, 35, 89, 37]
print("Original numbers:", num_list) # Original numbers: [34, 11, 35, 89, 37]


sorted(num_list)
print("Sorted numbers:", num_list) # Sorted numbers: [11, 34, 35, 37, 89]

正如我之前指出的,您还可以使用该sorted()函数对其他可迭代对象进行排序。这就是我使用sorted()函数对元组进行排序的方式:

name_tuple = ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')
print("Original tuple:", name_tuple) # Original tuple: ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')


sorted(name_tuple)
print("Sorted tuple:", name_tuple) # Sorted tuple: ('Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann')

sort()请记住,我还指出您可以传递一个函数作为方法和函数的关键参数的值sorted()。此函数可以帮助您更果断地确定要对可迭代列表或元组进行排序的方式。

例如,sorted()函数和sort()方法只会按字符串或数字的第一部分排序。但您也可以通过传入一个函数作为关键参数来按第二部分排序。正是使用此功能,您将决定如何对列表或其他可迭代对象进行排序。

lambda 函数是执行此操作的理想选择,因为它需要一个表达式。但在我们深入研究使用 lambda 函数进行排序之前,让我提醒您什么是 lambda 函数。

什么是 Lambda 函数?

lambda 函数是匿名函数——您不使用关键字编写的函数def。一个 lambda 函数可以接受多个参数,但它只能有一个表达式。

既然你没有用关键字定义一个lambda函数def,你怎么调用它?您可以将 lambda 函数分配给变量,然后通过该变量的名称调用它。

在下面的示例中,addNumlambda 函数有 3 个参数并将它们相加:

addNums = lambda a, b, c : a + b + c


res = addNums(4, 12, 4)
print(res) #20

如何使用 Lambda 函数对列表进行排序

sort()您可以使用方法和函数对列表进行“lambda 排序” sorted()。让我们先看看如何使用sort()方法进行 lambda 排序。

如何使用sort()方法进行 Lambdasort

让我们把之前排序的名字按照第二个名字排序。这个 lambda 函数非常适合按名字排序:

lambda name: name.split()[1]

lambda 函数拆分名称并采用名称的第二部分——第二个名称。第一部分是名字,它将是[0]。

您可以将此 lambda 函数作为关键参数传入——按第二个名字对名字进行排序:

name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original list", name_list) # Original list ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']


name_list.sort(key=lambda name: name.split()[1])
print("Sorted name list", name_list) # Sorted name list ['John Ann', 'Luigi Austin', 'Ben Benson', 'Zen Jack']

您可以看到名称按第二个名称的字母顺序排序。John Ann先到,Zen Jack后到。Ann 以 A 开头,Jack 以 J 开头。

如果你愿意,你甚至可以直接传入一个函数。您需要做的是不调用该函数。您必须将其作为对象传入。

name_list = ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']
print("Original list", name_list) # Original list ['Zen Jack', 'Luigi Austin', 'Ben Benson', 'John Ann']


def sort_by_second_name(name):
    return name.split()[1]


name_list.sort(key=sort_by_second_name)
print("Sorted name list", name_list) # Sorted name list ['John Ann', 'Luigi Austin', 'Ben Benson', 'Zen Jack']

现在,让我们根据数字的最后一位对数字进行排序。如果您不知道,如果您对%两个数字使用余数 ( ) 运算符,它会将两个数字相除并返回余数:

print(4 % 2) # returns 0
print(44 % 11) # returns 0
print(104 % 60) # returns 44
print(21 % 2) # returns 1

但是如果你用 10“修改”一个多位数字,它会返回数字的最后一位:

print (44 % 10) # returns 4
print (402 % 10) # returns 2
print (152 % 10) # returns 2
print (1596 % 10) # returns 6

这就是你如何获得第二个数字并根据它对数字进行排序的方法。

以下是我如何使用 lambda 函数对前面示例中的数字进行排序:

num_list = [22, 34, 11, 35, 89, 37, 93, 56, 108]
print('Original Number:', num_list) # Original Number: [22, 34, 11, 35, 89, 37, 93, 56, 108]


num_list.sort(key=lambda num: num % 10)
print('Lambda sorted number:', num_list) # Lambda sorted number: [11, 22, 93, 34, 35, 56, 37, 108, 89]

如您所见,此 lambda 函数 lambda num: num % 10负责根据每个第二位数字对数字进行排序。我将数字传递给 lambda 函数并使用% 10. 此 lambda 函数遍历每个数字并获取它们的最后一位数字。

如果你愿意,你甚至可以直接传入一个函数作为键:

num_list = [22, 34, 11, 35, 89, 37, 93, 56, 108]
print('Original Number:', num_list) # Original Number: [22, 34, 11, 35, 89, 37, 93, 56, 108]


def sort_by_second_num(num):
    return num % 10


num_list.sort(key=sort_by_second_num)
print('Lambda sorted number:', num_list) # Lambda sorted number: [11, 22, 93, 34, 35, 56, 37, 108, 89]

如何使用sorted()函数进行 Lambdasort

在这个例子中,我们将使用一些足球运动员的球衣号码对元组列表进行排序。

sort()和方法之间的唯一区别sorted()是sorted()采用强制迭代而不采用强制迭代sort()。

因此,要使用函数进行 lambda 排序sorted(),您需要做的就是将列表作为可迭代项传入,并将您的 lambda 函数作为键:

 footballers_and_nums = [("Fabregas", 4),("Beckham" ,10),("Yak", 9), ("Lampard", 8), ("Ronaldo", 7), ("Terry", 26), ("Van der Saar", 1), ("Yobo", 2)]


sorted_footballers_and_nums = sorted(footballers_and_nums, key=lambda index : index[1])


print("Original footballers and jersey numbers", footballers_and_nums) # Original footballers and jersey numbers [('Fabregas', 4), ('Beckham', 10), ('Yak', 9), ('Lampard', 8), ('Ronaldo', 7), ('Terry', 26), ('Van der Saar', 1), ('Yobo', 2)]


print("Sorted footballers by jersey numbers:", sorted_footballers_and_nums) # Sorted footballers by jersey numbers: [('Van der Saar', 1), ('Yobo', 2), ('Fabregas', 4), ('Ronaldo', 7), ('Lampard', 8), ('Yak', 9), ('Beckham', 10), ('Terry', 26)]

执行排序的 lambda 函数是 this lambda index : index[1])。lambda 遍历列表中的所有元组,获取第二个索引 ( [1]),并使用它们进行排序。

结论

本文向您展示了如何使用 lambda 函数使用sort()方法和函数对列表进行排序。sorted()

但这还不是全部。我们研究了sort()方法和sorted()函数如何在没有 lambda 函数的情况下独立工作。我还提醒您什么是 lambda 函数,这样您就可以理解我是如何使用 lambda 函数进行排序的。文章来源地址https://www.toymoban.com/news/detail-767428.html

到了这里,关于Lambda 在 Python 中排序——如何对列表进行 Lambda 排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python——lambda函数

    lambda  表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用  lambda  表达式来代替。 其中,定义  lambda  表达式,必须使用  lambda  ; [list]  作为可选参数,等同于定义函数是指定的参数列表

    2024年02月06日
    浏览(49)
  • Python中的Lambda函数

    Python中的Lambda函数是一种小型匿名函数,它是通过 lambda 来定义的。Lambda函数可以接受任意数量的参数,但只能有一个表达式。 Lambda函数的语法非常简单,基本形式如下: 这里的 arguments 是函数的参数,可以有多个,用逗号分隔。 expression 是一个关于参数的表达式,这

    2024年02月21日
    浏览(39)
  • python 匿名函数(lambda函数)

    Python中的匿名函数是指没有命名标识符的函数,通常被称为lambda函数。与普通函数不同,它们是一种更加简洁的方式来编写小型临时函数。在Python中,匿名函数使用 lambda 来定义,其语法如下: 其中, arguments 表示函数参数,可以是一个或多个,多个参数之间用逗号分隔

    2024年02月02日
    浏览(52)
  • python系列教程210——嵌套lambda

    朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow 声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写

    2024年02月16日
    浏览(25)
  • Python中lambda表达式的用法

    lambda表达式本身是一个非常基础的python函数语法,其基本功能跟使用def所定义的python函数是一样的,只是lambda表达式基本在一行以内就完整的表达了整个函数的运算逻辑。这里我们简单展示一些lambda表达式的使用示例,以供参考。 首先我们尝试一个最简单的二元求和的ipyth

    2024年04月28日
    浏览(35)
  • 探索Python中的函数式编程:Lambda表达式与函数式工具【第135篇—Lambda表达式】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在Python编程世界中,函数式编程逐渐成为了一种流行的范式,特别是在处理数据和编写简洁、高效代码时。函数式编程的核心思想是将计算视

    2024年04月08日
    浏览(87)
  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解

    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。 函数可以返回数据作为结果。 在Python中,使用def定义函数: 示例 要调用函数,请使用函数名称后跟括号: 示例 可以将信息作为参数传递给函数。参数在函数名称后面的括号内指定

    2024年02月08日
    浏览(78)
  • 第六章(7):Python中的函数—lambda表达式

    是一种匿名函数的定义方式,它可以替代函数定义的方式,使代码更加简洁和易读。Lambda表达式的语法形式为:lambda 参数列表: 表达式,其中参数列表和表达式都是可选的,但是在大多数情况下都需要用到它们。Lambda表达式通常被用在需要传递函数对象作为参数的函数中,也

    2024年02月08日
    浏览(54)
  • 【Python】Lambda函数是什么,它的应用场景是什么?

    定义: Lambda函数也叫匿名函数,它是功能简单,只用一行代码就能实现的小型函数。 使用场景: Lambda函数没有名字,不用考虑函数名冲突问题;减少了代码行数,方便又简洁。 格式: lambda 参数[,参数] : 表达式 (例: lambda x,y : x + y ) 举例: 用lambda函数求出1到20中所有的

    2024年02月12日
    浏览(40)
  • python之lambda-filter-map-reduce作用

    lambda : 匿名函数 ,让函数更简洁,有时候妙用无穷; 使用方法:lambda 后面直接跟变量,变脸后面是冒号,冒号后面是表达式,表达式的计算结果就是本函数的返回值 注意:虽然 lambda 函数可以接收任意多的参数并且返回单个表达式的值,但是 lambda 函数不能包含命令且包含

    2023年04月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包