Проблема : Учитывая коллекцию. Вы хотите создать новый список на основе всех значений в этой коллекции. Код должен работать в одной строке кода. Как вы это делаете? Вам нужен лямбда Функция ?
Пример : Учитывая массив 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.