def snd(pair):
x,y = pair
return y
list_of_tuples = [(1,2), (3,4), (5,0)]
print(min(list_of_tuples, key=snd(list_of_tuples)))
上面的函数将pair作为参数,但是当尝试调用它时,它被调用而没有任何参数。 为什么这样?
答案 0 :(得分:1)
Python中的许多函数都有一个可选的key
参数,它接受一个可调用的函数(一个函数)应用于每个元素(这里是每个元组对)。
你不需要 自己提供论证,min
为你做这件事。来自docs on min
:
有两个可选的仅限关键字参数。 key参数指定一个参数排序函数,如用于
list.sort()
的函数。
请查看here以获取有关关键功能的更多信息。
答案 1 :(得分:0)
你的代码几乎是正确的,只是在snd defintion后缩进,只使用key参数的函数名,因为min函数会自动将列表作为参数传递给函数。
def snd(pair):
x,y = pair
return y
list_of_tuples = [(1,2), (3,4), (5,0)]
print(min(list_of_tuples, key=snd))