πŸ” Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ lambda Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python - это Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π°. Они ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· нСобходимости опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python:

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для умноТСния Π΄Π²ΡƒΡ… чисСл
multiply = lambda x, y: x * y

# Π’Ρ‹Π·ΠΎΠ² лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
result = multiply(5, 6)
print(result)  # Π’Ρ‹Π²ΠΎΠ΄: 30

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ опрСдСляСм лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ multiply, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° x ΠΈ y ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эту лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ сохраняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ result. Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π²Π΅Π½ 30.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ lambda Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² языкС программирования Python ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ lambda Π² Python ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ лямбда-функция? Лямбда-функция - это способ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π΅Π· нСобходимости использования ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова def. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая выполняСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большого объСма ΠΊΠΎΠ΄Π°. Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠžΠ±Ρ‰ΠΈΠΉ синтаксис лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

lambda arguments: expression

Π“Π΄Π΅:

  • arguments - это список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ функция.
  • expression - это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ лямбда-функция Π² Python.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π° числа

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для этого:

square = lambda x: x ** 2

result = square(5)
print(result)  # Output: 25

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ square, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ x ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ этого числа. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, пСрСдавая Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° списка

Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для сортировки списков. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с сортировкой списка ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ элСмСнтов:

fruits = ['apple', 'banana', 'cherry', 'date']

sorted_fruits = sorted(fruits, key=lambda x: len(x))

print(sorted_fruits)  # Output: ['date', 'apple', 'banana', 'cherry']

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sorted для сортировки списка fruits. Π’ качСствС ΠΊΠ»ΡŽΡ‡Π° сортировки ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, список сортируСтся ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ элСмСнтов.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

НСсмотря Π½Π° свою простоту ΠΈ удобство, лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния:

  • Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.
  • Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ инструкций.
  • Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ состояния ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.

Из-Π·Π° этих ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ лямбда-функция Π² языкС программирования Python. Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Они ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях, особСнно Π² случаях, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ с лямбда-функциями ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… возмоТности Π² Python. Π£Π²Π΅Ρ€Π΅Π½, ΠΎΠ½ΠΈ станут Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтом Π² вашСм арсСналС программиста!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Python с нуля. Π£Ρ€ΠΎΠΊ 14 | Lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

#42. АнонимныС (lambda) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

45 Lambda функция Python. Lambda Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Анонимная функция Lambda

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ replays Π² Python? πŸ”„πŸ

πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ parser Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡ‚Π΅ подробности ΠΎ ΠΌΠΎΡ‰Π½ΠΎΠΌ инструмСнтС!

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ остаток ΠΎΡ‚ дСлСния ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл Π² python?

πŸ” Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ lambda Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸŽ₯ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π²ΠΈΠ΄Π΅ΠΎ с YouTube Π½Π° Python 🐍

πŸ’‘ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мСню Π² Python: пошаговоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ frontend Π½Π° Python? ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΈ прСимущСства для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²πŸ