在python中使用lambda时遇到麻烦

时间:2011-05-10 03:15:12

标签: python lambda

我正在尝试编写一个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)

我知道代码看起来非常新手,并希望得到的任何提示是更好看

2 个答案:

答案 0 :(得分:4)

你真的需要使用lambda吗?这是一个列表理解,大多数人似乎更容易阅读

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

使用lambda函数的等价物是

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

写一个更短的方法是

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

此处需要float函数(除非您使用的是Python3),否则将执行整数除法

答案 1 :(得分:0)

您正在寻找的是map内置函数,它作为第二个参数作用于传递给它的容器的各个元素,并返回结果,即列表。第一个参数是lambda的很多次,它接受参数并对其起作用。在您的情况下,分钟和数字。

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