проблема с использованием лямбда в питоне - PullRequest
0 голосов
/ 10 мая 2011

Я пытаюсь написать лямбду, где она занимает минуты и делит ее на диапазон, а затем выводит результат.Я пытался

       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 ]

4 голосов
/ 10 мая 2011

Вам действительно нужно использовать лямбду? Вот понимание списка, которое большинству людей кажется легче читать

[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 голосов
/ 10 мая 2011

Вам нужна встроенная функция map, которая воздействует на отдельные элементы контейнера, переданные ему в качестве второго аргумента, и возвращает результат, представляющий собой список.Первый аргумент часто лямбда, которая принимает аргумент и действует на него.В твоем случае минуты и цифры.

map(lambda number:number/rangeval,range(1,rangeval))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...