Lambda如何使用max函数在python中工作?

问题描述 投票:0回答:2
stocks ={
    'BMW':40 ,
    'FB': 90 ,
    'whatsapp':100,
    'Apple':30
    }
print("lowest stock is : " , min(stocks ,key =lambda x:stocks[x]) )

这段代码有效但我需要知道lambdas如何在这个上下文中工作我知道它接受一个参数然后返回结果,这是表达式,所以我的问题是在这个例子中lambda采用'x'的参数是什么,并且这样做参数也改变了。我的意思是min函数在运行时会改变它。所以当第一次调用min时,x.thanks的值是提前的。

python python-3.x lambda max
2个回答
3
投票

来自https://www.programiz.com/python-programming/methods/built-in/min

  1. min(可迭代,* iterables [,键,默认]) iterable - sequence(tuple,string),collection(set,dictionary)或迭代器对象,其最小元素将被找到 * iterables(可选) - 任何数量的可寻找最小的迭代 key(可选) - 传递可迭代的关键函数,并根据其返回值执行比较 default(可选) - 如果给定的iterable为空,则为默认值

调用min(stocks, key= lambda x:stocks[x])调用stocks中的最小元素,通过比较函数lambda x:stocks[x]的结果,这只是一个匿名函数,它返回给定键的股票值。因此,对min的调用会返回最小值的股票。

另见Get the key corresponding to the minimum value within a dictionaryhttp://www.aroseartist.com/python-dictionary-max-min/


0
投票

你的min()函数得到一个可迭代的第一个参数(在这种情况下'stock'dict)。

第二个参数,即'key = lambda x:stocks [x]',是一个根据应评估的最小值来指定的函数。

基本上x取以下值('BMW''FB''whatsapp''Apple')和lambda函数返回值(40 90 100 30)。 30是最低值,因此你的min()函数将返回该值的'key',即'Apple'(不要与'key'混淆,'key'是min()函数中的参数)

© www.soinside.com 2019 - 2024. All rights reserved.