2011-05-10 73 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))