gpt4 book ai didi

python - 请解释一下这个 lambda 函数?

转载 作者:行者123 更新时间:2023-11-28 20:46:01 26 4
gpt4 key购买 nike

我使用 sorted(list_of_tuples, key = lambda tup: tup[1]) 从我在互联网上找到的代码中对元组列表进行了排序。我不明白 lambda 函数在这个命令中是如何工作的。 lambda 函数是否返回元组的第一个索引?为什么是 tup 而不是 tuple: 之前的第一个 tup 表示什么?那是传入的参数吗? Lambda 函数是否计算 : 的右侧并返回它?

我在 StackOverflow 上找到了对 lambda 函数的解释,其中人们以“非函数式”的方式写出了 Lambda 函数作为比较,但我真的不明白哪些部分等同于哪些部分。

谢谢

最佳答案

lambda 是一个内联函数,因此您可以像这样重写它:

def sortkey(tup):
return tup[1]

sorted(list_of_tuples, key=sortkey)

现在您看到冒号前的 tup 是函数的参数tup[1] 返回第二个 元素(首先是 tup[0])

此 lambda 是排序函数的,这意味着您将按 list_of_tuples 中每个元素的第二个进行排序。 sorted() 将每个元素传递给 key 函数,按所述函数的返回值排序

正如@kojiro 所指出的,operator 模块中为此存在一个内置函数,称为itemgetter。 .您将索引传递给该函数,它返回一个执行您的 lambda 执行的操作的函数

演示如何仅调用一次键的示例:

>>> def sortkey(x):
... print x
... return x

>>> inputlist = range(5)
>>> random.shuffle(inputlist)
>>> sorted(inputlist, key=sortkey)
0
3
4
2
1
[0, 1, 2, 3, 4]

关于python - 请解释一下这个 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21736749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com