πŸΠ§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ лямбда Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: основныС особСнности ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

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

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


# ΠŸΡ€ΠΎΡΡ‚Π°Ρ лямбда-функция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ числа
square = lambda x: x * x

# ИспользованиС лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
result = square(5)
print(result)  # Π’Ρ‹Π²ΠΎΠ΄: 25
      

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

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

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

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ лямбда Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

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

Бинтаксис для создания лямбда-выраТСния выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

lambda arguments: expression

Π“Π΄Π΅:

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

Лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ нСобходимости. ОбъявлСниС лямбда-выраТСния прСдоставляСт Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ "Π½Π° мСстС".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования лямбда-выраТСния:

addition = lambda x, y: x + y
result = addition(3, 5)
print(result)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 8

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

Помимо простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, лямбда-выраТСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ вмСстС с функциями Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка (higher-order functions) Ρ‚Π°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ map, filter ΠΈ reduce. Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования лямбда-выраТСния с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка:

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: [1, 4, 9, 16, 25]

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ map вмСстС с лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ возвСсти ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ число Π² спискС Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ map являСтся Π½ΠΎΠ²Ρ‹ΠΉ список squared_numbers содСрТащий [1, 4, 9, 16, 25].

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

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

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

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

Lambda Python Π½Π° русском Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ | лямбда выраТСния Python

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

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

Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python? πŸπŸ”

Как Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ число Π² Python? πŸ€”πŸ’»

🐒 Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΡƒ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸΠ§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ лямбда Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: основныС особСнности ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Keras Python: пошаговоС руководство с простыми инструкциями! πŸš€

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

πŸ” Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ 2 Π·Π½Π°ΠΊΠ° послС запятой Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅?