2016-12-25 78 views
0

我想用Python语言编写解决这个功能单词列表和整数n沿,并返回比较长的单词列表ñ即我可以使用lambda来接受两个参数在Python和使用地图

retlist=list() 
def retword(list,n): 
    for i in list: 
     if len(i)>=n: 
      retlist.append(i) 
return retlist  

我可以很容易地做到这一点使用这个功能,但我想解决这个使用映射,过滤器,减少和lambda表达式。这样

map(lambda list,len:list[i] if len(list[i])> len, (list,len)) 
+0

要回答这个问题在你的标题中:是的。但你只需要使用过滤器,没有地图。你需要一个返回True或False的lambda。你不能在函数调用中放入'if'。如果您打算将其用作函数,您也不能调用变量'len'。 –

回答

2

使用的东西filter

filter(lambda s: len(s) >= n, list) 
+0

我如何在这里通过''n'' – DhKo

0

列表解析会做你需要的工作,如果a是最初的名单和n是所需的长度:

retlist = [i for i in a if len(i) >= n] 
相关问题