栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python lambda表达式中可以有多个语句吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python lambda表达式中可以有多个语句吗?

从您的具体问题到更一般的问题,我可以在这里提供几种不同的答案。因此,从最具体到最一般:

问: 能否在lambda中放入多个语句?

:不 但是您实际上不需要使用lambda。您可以将语句放在a中

def
。即:

def second_lowest(l):    l.sort()    return l[1]map(second_lowest, lst)

问: 您可以通过对列表进行排序从lambda中获得第二低的商品吗?

答: 是的。正如alex的答案所指出的那样,

sorted()
是sort的一种版本,它创建了一个新列表,而不是就地排序,并且可以被链接。请注意,这可能是您应该使用的-
地图在原始列表上产生副作用是不好的做法。

问: 如何从一系列列表中的每个列表中获取第二低的项目?

sorted(l)[1]
:实际上并不是最好的方法。它具有O(N log(N))复杂度,同时存在O(n)解决方案。可以在heapq模块中找到。

>>> import  heapq>>> l = [5,2,6,8,3,5]>>> heapq.nsmallest(l, 2)[2, 3]

因此,只需使用:

map(lambda x: heapq.nsmallest(x,2)[1],  list_of_lists)

通常也认为使用列表理解更加清晰,这完全避免了lambda:

[heapq.nsmallest(x,2)[1] for x in list_of_lists]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号