2011-05-10 40 views
0

我想寫一個lambda,它需要分鐘並將其除以一個範圍,然後打印出結果。 我試過麻煩在python中使用lambda

 list((lambda minutes: minutes/range),range(Numbe+1,1)) 

但是列表只有一個參數,任何想法?分鐘和號碼的用戶提供

我想通了使用

 List=[] 
     List=range(1, Number+1) 
     List.reverse() 
     print(List) 
     for number in List: 
      print (minutes/ number) 

我知道這些代碼看起來非常新手和希望任何提示,得到的是更好看

+1

這只是一個風格問題,但你已經陷入了和許多初學者一樣的陷阱。描述你的問題,不要問如何做你已經決定的解決方案:) – richo 2011-05-10 03:33:22

+0

感謝您的提示 – Aaron 2011-05-10 03:44:57

回答

4

你真的需要使用lambda?這裏是一個列表理解其中大部分人似乎更容易找到使用Lambda函數讀取

[float(minutes)/number for minutes in range(1,number+1)] 

的等效

map(lambda minutes: float(minutes)/number, range(1,number+1)) 

並寫出更短的方式

map(float(number).__rdiv__, range(1,number+1)) 

這裏需要float函數(除非你使用的是Python3),否則會進行整數除法

+0

除了使用float函數,op還可以設置「from _ _future_ _ import division」。 – riza 2011-05-10 08:01:45

0

你在找什麼是map內建函數,它作用於傳遞給它的容器的單個元素作爲第二個參數並返回列表結果。第一個論點是許多次拉姆達,它接受了論據並對其採取行動。在你的情況下,分鐘和數字。

map(lambda number:number/rangeval,range(1,rangeval))