lambda python什么意思_python-什么是key = lambda

在Python中,lambda是用于定义匿名函数(无名称的函数)的关键字,这就是为什么它们被称为lambda函数的原因。

基本上,它用于定义匿名函数,这些匿名函数可以/不能接受参数并返回数据/表达式的值。 让我们来看一个例子。

>>> # Defining a lambda function that takes 2 parameters(as integer) and returns their sum

...

>>> lambda num1, num2: num1 + num2

at 0x1004b5de8>

>>>

>>> # Let's store the returned value in variable & call it(1st way to call)

...

>>> addition = lambda num1, num2: num1 + num2

>>> addition(62, 5)

67

>>> addition(1700, 29)

1729

>>>

>>> # Let's call it in other way(2nd way to call, one line call )

...

>>> (lambda num1, num2: num1 + num2)(120, 1)

121

>>> (lambda num1, num2: num1 + num2)(-68, 2)

-66

>>> (lambda num1, num2: num1 + num2)(-68, 2**3)

-60

>>>

现在让我回答您的第二个问题。 第一个答案也很好。 这是我自己用另一个示例进行解释的方式。

假设我们有一个项目列表(具有数字内容的整数和字符串),如下所示,

nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]

我想使用sorted()函数对其进行排序,让我们看看会发生什么。

>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]

>>> sorted(nums)

[1, 3, 4, '-1', '-10', '2', '5', '8']

>>>

它并没有像我想要的那样给我以下的期望,

['-10', '-1', 1, '2', 3, 4, '5', '8']

这意味着我们需要一些策略(以便sorted可以将我们的字符串项视为整数)来实现这一目标。 这就是为什么使用key关键字参数的原因。 请看下面的。

>>> nums = ["2", 1, 3, 4, "5", "8", "-1", "-10"]

>>> sorted(nums, key=int)

['-10', '-1', 1, '2', 3, 4, '5', '8']

>>>

让我们使用lambda函数作为键的值

>>> names = ["Rishikesh", "aman", "Ajay", "Hemkesh", "sandeep", "Darshan", "Virendra", "Shwetabh"]

>>> names2 = sorted(names)

>>> names2

['Ajay', 'Darshan', 'Hemkesh', 'Rishikesh', 'Shwetabh', 'Virendra', 'aman', 'sandeep']

>>> # But I don't want this o/p(here our intention is to treat 'a' same as 'A')

...

>>> names3 = sorted(names, key=lambda name:name.lower())

>>> names3

['Ajay', 'aman', 'Darshan', 'Hemkesh', 'Rishikesh', 'sandeep', 'Shwetabh', 'Virendra']

>>>

您可以定义自己的函数(可调用)并将其提供为键值。

亲爱的程序员,我为您编写了以下代码,请尝试理解它并评论您的解释。 我很高兴看到您的解释(很简单)。

>>> def validator(item):

... try:

... return int(item)

... except:

... return 0

...

>>> sorted(['gurmit', "0", 5, 2, 1, "front", -2, "great"], key=validator)

[-2, 'gurmit', '0', 'front', 'great', 1, 2, 5]

>>>

我希望它会有用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值