πŸ”¬ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ лямбда функция Π² Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство 2021

Лямбда-функция Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ - это анонимная функция, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана Π±Π΅Π· явного опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

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

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


    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠŸΡ€ΠΎΡΡ‚Π°Ρ лямбда-функция
    multiply = lambda x, y: x * y
    print(multiply(3, 4))  # Π’Ρ‹Π²ΠΎΠ΄: 12

    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ИспользованиС лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
    numbers = [1, 2, 3, 4, 5]
    squared_numbers = list(map(lambda x: x ** 2, numbers))
    print(squared_numbers)  # Π’Ρ‹Π²ΠΎΠ΄: [1, 4, 9, 16, 25]
  

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся лямбда-функция с двумя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ `x` ΠΈ `y`, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вмСстС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ `map()` для возвСдСния Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта списка `numbers`.

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

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

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ лямбда-функция Π² Python?

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

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

        
            # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, возводящСй число Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚
            square = lambda x: x ** 2
            print(square(3))
            # Π’Ρ‹Π²ΠΎΠ΄: 9
        
    

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

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

        
            # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ map
            numbers = [1, 2, 3, 4, 5]
            squares = list(map(lambda x: x ** 2, numbers))
            print(squares)
            # Π’Ρ‹Π²ΠΎΠ΄: [1, 4, 9, 16, 25]
        
    

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

Π’Π°ΠΊΠΆΠ΅, лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для сортировки списков. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

        
            # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для сортировки списка ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ строк
            words = ["apple", "banana", "cherry", "date"]
            words.sort(key=lambda x: len(x))
            print(words)
            # Π’Ρ‹Π²ΠΎΠ΄: ['date', 'apple', 'cherry', 'banana']
        
    

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

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

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

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

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

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

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

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

πŸ” Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ init Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ - понятноС объяснСниС ΠΈ основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for Π² Python: основныС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² Python глобально? ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

πŸ”¬ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ лямбда функция Π² Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство 2021

πŸ’‘ Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ число Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Python

Π“Π΄Π΅ хранятся ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python? πŸ“¦πŸ’» Π£Π·Π½Π°Π΅ΠΌ сСкрСты хранСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²!

πŸ•’ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ врСмя Π² Python