2016-12-25 51 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] 
相關問題