繁体   English   中英

Lambda如何在具有max函数的python中工作?

[英]how does Lambda work in python with max function?

stocks ={
    'BMW':40 ,
    'FB': 90 ,
    'whatsapp':100,
    'Apple':30
    }
print("lowest stock is : " , min(stocks ,key =lambda x:stocks[x]) )

此代码有效,但是我需要知道lambda在这种情况下如何工作,我知道它需要一个参数,然后返回结果即表达式,所以我的问题是在此示例中lambda取'x'的参数是什么,并且这样做参数是否更改。我的意思是min函数在运行时是否会更改它。所以当首次调用min时,x.thanks的值是什么?

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

  1. min(iterable,* iterables [,键,默认]
    • 可迭代-序列(元组,字符串),集合(集合,字典)或一个迭代器对象,其最小元素将被找到
    • * iterables(可选)-数量最小的可迭代项
    • key(可选)-传递可迭代对象并根据其返回值执行比较的键函数
    • 默认值(可选)-如果给定的iterable为空,则为默认值

通过比较函数lambda x:stocks[x]的结果,调用min(stocks, key= lambda x:stocks[x])可以找到stocks最小的元素,该函数只是一个匿名函数,返回的是给定密钥的库存。 因此,调用min将返回具有最小值的股票。

另请参阅获取与字典中的最小值对应的键http://www.aroseartist.com/python-dictionary-max-min/

您的min()函数将获得一个可迭代的第一个参数(在本例中为“ stocks”字典)。

第二个参数是“ key = lambda x:stocks [x]”,它是一个函数,它基于应该计算的最小值来指定。

基本上x接受以下值(“ BMW”,“ FB”,“ whatsapp”,“ Apple”),而lambda函数返回值(40 90 100 30)。 30是最小值,因此您的min()函数将为该值返回“键”,即“ Apple”(不要与“键”相混淆,后者是min()函数中的参数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM