Найти - Пользователи
Полная версия: Цикл For
Начало » Python для новичков » Цикл For
1 2
Cryo
asilyator
map и list comprehension - это все функциональное программирование, т.е. особого противоречия нет.
Не знал, что конструкция генераторов списков относится к функциональному программированию. Учту. Но map ведь применяет функцию ко всем элементам последовательности, а list comprehension применяет выражение к итерируемой последовательности. Мне кажется вариант с list comprehension более лучшим..
FishHook
Cryo
asilyator
map и list comprehension - это все функциональное программирование, т.е. особого противоречия нет.
Не знал, что конструкция генераторов списков относится к функциональному программированию. Учту. Но map ведь применяет функцию ко всем элементам последовательности, а list comprehension применяет выражение к итерируемой последовательности. Мне кажется вариант с list comprehension более лучшим..

В принципе, без list comprehension вполне можно обойтись

s=[1,2,3,4,5,6,7,8]
map(lambda x:x+12, filter(lambda x: not x%2,s))
[x+12 for x in s if not x%2]
Как то тут меряли скорость выполнения мапов и списковых выражений, получилось примерно одинаково.
Так что тут вопрос только в читаемости кода.
Но самая мякотка начинается, когда эти два механизма мы комбинируем
[x+12 for x in map(lambda i: (i+1)**2, s) if not x%3 and not (x-5)%2]
fata1ex
Cryo, потому что enumerate не для этого, остается непонятная неиспользованная переменная ‘j’.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB