πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция lambda Π² Python? Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

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

add = lambda x, y: x + y
result = add(2, 3)
print(result)  # Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 5

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ lambda с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ x ΠΈ y, которая выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ слоТСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠœΡ‹ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, пСрСдавая Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ 2 ΠΈ 3, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция lambda Π² Python?

Π’ Python сущСствуСт особый Π²ΠΈΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ "lambda-функция" ΠΈΠ»ΠΈ просто "lambda". Lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - это Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово "def" для опрСдСлСния, lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово "lambda".

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

lambda arguments: expression

Π—Π΄Π΅ΡΡŒ arguments - это Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любоС количСство, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. А expression - это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ являСтся ΠΈΡ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования встроСнными функциями Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ map(), filter() ΠΈΠ»ΠΈ reduce().

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ чисСл

multiply = lambda x, y: x * y
result = multiply(5, 3)
print(result)  # Π’Ρ‹Π²ΠΎΠ΄: 15

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

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

fruits = ['яблоко', 'Π±Π°Π½Π°Π½', 'вишня', 'дыня']
sorted_fruits = sorted(fruits, key=lambda fruit: len(fruit))
print(sorted_fruits)  # Π’Ρ‹Π²ΠΎΠ΄: ['яблоко', 'дыня', 'Π±Π°Π½Π°Π½', 'вишня']

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² качСствС ΠΊΠ»ΡŽΡ‡Π° сортировки для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sorted(). Lambda-функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ fruit ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ этого элСмСнта, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ слов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ списка

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Π’Ρ‹Π²ΠΎΠ΄: [2, 4, 6, 8, 10]

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали lambda-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вмСстС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ filter(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа ΠΈΠ· списка. Lambda-функция провСряСт, дСлится Π»ΠΈ число Π½Π° 2 Π±Π΅Π· остатка, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

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

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

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

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

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

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

πŸ” Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ компилятор python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

🐍 Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Python Π² PATH Windows 7: пошаговая инструкция πŸ“

πŸ” Как Π²Π·ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простым способом с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

πŸ” Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ функция lambda Π² Python? Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sup python? 🐍 ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Selenium Python? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Учимся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ графичСский ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ