Проблема : Учитывая коллекцию. Вы хотите создать новый список на основе всех значений в этой коллекции. Код должен работать в одной строке кода. Как вы это делаете? Вам нужен лямбда Функция ?
Пример : Учитывая массив A = [1, 2, 3, 4]
Отказ Вам нужно создать второй массив B
со всеми значениями А
-У добавления +1
к каждому значению. Вот ваш мультиналог:
a = [1, 2, 3, 4] b = [] for x in a: b.append(x+1) print(b) # [2, 3, 4, 5]
Как вы выполняете это в одной строке кода?
Ответ Нет, вам не нужна функция лямбда. Что вы ищете, это функция под названием Понимание списка Отказ Вот выражение одноклассника, которое выполняет это без функции лямбда:
b = [x+1 for x in a] print(b) # [2, 3, 4, 5]
Вы можете попробовать этот пример самостоятельно в нашем интерактивном оболочке кода:
Давайте погрузимся в некоторую справочную информацию, если вам интересно, как работают по ссылке. Исходя из вашего вопроса, я также подозреваю, что вы не полностью понимаете функции лямбда, поэтому я также добавлю другой раздел о функциях лямбда. Наконец, вы также узнаете о третьем альтернативном методе для решения этой точной проблемы с помощью функции Lambda в сочетании с функцией встроенной карты Python!
Итак, оставайтесь со мной – вы станете лучшим кодером в процессе! 🙂.
Понимание списка 101.
Понимание списка является компактным способом создания списков. Простая формула – [Выражение + контекст]
Отказ
- Выражение: Что делать с каждым элементом списка?
- Контекст: Какие элементы для выбора? Контекст состоит из произвольного количества
для
иЕсли
заявления.
Пример [X для X в диапазоне (3)]
Создает список [0, 1, 2]
Отказ
Посмотрите на следующий интерактивный кодовый фрагмент – вы можете выяснить, что напечатано в оболочке? Продолжай и нажмите «Беги», чтобы увидеть, что произойдет в коде:
Я объясню обе способы создания нового списка в следующем.
Пример : Скажи, что вы хотите Отфильтруйте всех клиентов из вашей базы данных, которые зарабатывают более 1 000 000 долларов. Это то, что новичок не знает, понимание списка будет делать:
# (name, $-income) customers = [("John", 240000), ("Alice", 120000), ("Ann", 1100000), ("Zach", 44000)] # your high-value customers earning <$1M whales = [] for customer, income in customers: if income>1000000: whales.append(customer) print(whales) # ['Ann']
Этот фрагмент нуждается в четырех строках, чтобы создать список высококачественных клиентов (китов)!
Вместо этого гораздо лучший способ сделать то же самое – использовать список пометков:
whales = [x for x,y in customers if y>1000000] print(whales) # ['Ann']
Понимание списка мертвое просто, когда вы знаете формулу.
«Состояние списка состоит из скобок, содержащих выражение, сопровождаемое предложение, а затем нулю или более для или если положения. Результатом станет новым списком, полученным в результате выражения выражения в контексте и если положения, которые следует за ними. “
Вот формула для понимания списка. Это одна вещь, которую вы должны взять домой из этого учебника.
Формула: Понимание списка состоит из двух частей.
«[‘+ выражение + контекст +’] ‘
Первая часть – это выражение. В приведенном выше примере это была переменная х
Отказ Но вы также можете использовать более сложное выражение, такое как x.upper ()
Отказ Используйте любую переменную в своем выражении, которую вы определены в контексте в пределах Заявление Loop Отказ Смотрите этот пример:
whales = [x.upper() for x,y in customers if y>1000000] print(whales) # ['ANN']
Вторая часть – контекст Отказ Контекст состоит из произвольного количества и если пункты Отказ Одна цель контекста – определить (или ограничить) последовательность элементов, на которых мы хотим применить выражение. Вот почему вы иногда видите сложные ограничения, такие как это:
small_fishes = [x + str(y) for x,y in customers if y<1000000 if x!='John'] # (John is not a small fish...) print(small_fishes) # ['Alice120000', 'Zach44000']
Альбрехт, один из лояльных читателей моего курса электронной почты «Coffee Break Python», отметил, что вы можете сломать формулу, используя следующий план:
lst = [for - in
if ]
Подробное руководство по теме доступно бесплатно в этом руководстве на блог Finxter.
Функция лямбда 101.
Функция лямбда – это анонимная функция в Python. Начинается с ключевого слова лямбда
После последующей запятой списком ноль или более аргументов, а затем толстой кишки и возвращаемой экспрессией. Например, лямбда х, у, z: x + y + z
рассчитал бы сумму трех ценностей аргумента х + y + z
Отказ
Вот практический пример, где функции лямбда используются для создания функции инкрементации:
Упражнение : Добавьте еще один параметр в функцию лямбда!
Посмотрите видео или прочитайте статью, чтобы узнать о функциях Lambda в Python:
Головоломка Отказ Вот небольшой головоломка для проверки ваших навыков:
def make_incrementor(n): return lambda x: x + n f = make_incrementor(42) print(f(0)) print(f(1))
Чтобы проверить ваше понимание, вы можете решить этот точный кода головоломки с темой «лямбда функции в Python» на мой Код Finxter Code Puzzle App Отказ
Найти подробную статью о лямбдах.
Альтернативный метод 3: Карта () + lambda + list ()
Интересно, что есть третий способ решения вышеуказанной проблемы, используя карта ()
Функция (и функция лямбда):
# Method 3: map() + lambda + list() a = [1, 2, 3, 4] b = list(map(lambda x: x+1, a)) print(b) # [2, 3, 4, 5]
Вы можете узнать о карта ()
Функция в моем видеоурок здесь:
Тем не менее, было бы лучше, если вы избегали функции карты – это не читаемое и менее эффективное, чем понимание списка.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.