π Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΡ 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-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° Π»Π΅ΡΡ. ΠΠ½ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.