🐍 Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 12: АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ названия

Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° lambda, Π½Π΅ давая Π΅ΠΉ Π½Π°Π·Π²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «лямбда» связано с Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ систСмой Ξ»-исчислСния.

НазначСниС ΠΈ особСнности Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python

1. Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² качСствС ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ способа опрСдСлСния ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… def Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НапримСр, Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ стандартная функция для вычислСния дискриминанта:

def discr(b, a, c):
    return b ** 2 - 4 * a * c

А Ρ‚Π°ΠΊ – анонимная:

lambda b, a, c: b ** 2 - 4 * a * c

2. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Π² Ρ‚ΠΎΠΌ участкС ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹. Если Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, слСдуСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ def. Π§Π°Ρ‰Π΅ всСго Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ совмСстно со встроСнными функциями map(), filter(), sorted(), min(), max() ΠΈ Ρ‚. ΠΏ. ОсобСнно ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для сортировки:

mydict = {'слива':5, 'папайя':6, 'Π»ΡƒΠΊ':56, 'маракуйя':78, 'Π΅ΠΆΠ΅Π²ΠΈΠΊΠ°':45}

print('Π”ΠΎ сортировки: ', mydict)
sorted_mydict = dict(sorted(mydict.items(), key=lambda item: len(item[0])))
print('ПослС сортировки: ', sorted_mydict)

Π’Ρ‹Π²ΠΎΠ΄:

Π”ΠΎ сортировки:  {'слива': 5, 'папайя': 6, 'Π»ΡƒΠΊ': 56, 'маракуйя': 78, 'Π΅ΠΆΠ΅Π²ΠΈΠΊΠ°': 45}
ПослС сортировки:  {'Π»ΡƒΠΊ': 56, 'слива': 5, 'папайя': 6, 'Π΅ΠΆΠ΅Π²ΠΈΠΊΠ°': 45, 'маракуйя': 78}
🐍 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста»
πŸπŸŽ“ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собСса ΠΏΠΎ Python
ΠŸΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ свои знания ΠΏΠΎ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° собСса ΠΏΠΎ PythonΒ»
🐍🧩 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Python
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Python для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ PythonΒ»

3. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ лямбда-функциям ΠΈΠΌΠ΅Π½ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС, Π½ΠΎ считаСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π² соотвСтствии с рСкомСндациями PEP8, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ самой ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ анонимности: Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, ΠΈ поэтому ΠΈΠΌΠ΅Π½Π° ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹:

#МоТно, Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ
max_num = lambda a, b : a if a > b else b

#ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ
def max_num(a, b):
    return a if a > b else b 

4. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ сразу послС опрСдСлСния. Π—Π΄Π΅ΡΡŒ лямбда-функция выполняСт сортировку списка словарСй ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ Ρ†Π΅Π½Ρ‹:

fruit = [
    {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅':'Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄',
     'Ρ†Π΅Π½Π°': 230,
     'количСство': 412
    },
    {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅':'ΠΌΠ°Π½Π³ΠΎ',
     'Ρ†Π΅Π½Π°': 350,
     'количСство': 21
    },
    {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅':'Π±Π°Π½Π°Π½Ρ‹',
     'Ρ†Π΅Π½Π°': 70,
     'количСство': 234
    },
    {'названиС':'яблоки',
     'Ρ†Π΅Π½Π°': 66,
     'количСство': 213
    },
    ]
print(sorted(fruit, key=lambda item: item['Ρ†Π΅Π½Π°']))

Π’Ρ‹Π²ΠΎΠ΄:

[{'Π½Π°Π·Π²Π°Π½ΠΈΠ΅': 'яблоки', 'Ρ†Π΅Π½Π°': 66, 'количСство': 213}, {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅': 'Π±Π°Π½Π°Π½Ρ‹', 'Ρ†Π΅Π½Π°': 70, 'количСство': 234}, {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅': 'Π²ΠΈΠ½ΠΎΠ³Ρ€Π°Π΄', 'Ρ†Π΅Π½Π°': 230, 'количСство': 412}, {'Π½Π°Π·Π²Π°Π½ΠΈΠ΅': 'ΠΌΠ°Π½Π³ΠΎ', 'Ρ†Π΅Π½Π°': 350, 'количСство': 21}]

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

lambda a : a + 10, a - 5

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС:

NameError: name 'a' is not defined

6. Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Ρ‚Π΅Π»ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚Π° функция Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π²Π°ΠΈΠ²Π°Ρ‚ΡŒ всС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ значСния:

def my_function(n):
  return lambda a : a * n
double = my_function(2)
print(double(15))

# Π’Ρ‹Π²ΠΎΠ΄:
30

7. Π’ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… функциях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условия ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния. Π—Π΄Π΅ΡΡŒ анонимная функция добавляСт слово гласная ΠΈΠ»ΠΈ согласная Π² список Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ Π±ΡƒΠΊΠ²Π° Π² строкС st гласной ΠΈΠ»ΠΈ согласной:

st = 'ΡΠΆΠ΅Ρ€Ρ‚Ρ‹ΡƒΠΈΠΎΠΏΡˆΡ‰Π°ΡΠ΄Ρ„Π³Ρ‡ΠΉΠΊΠ»Π·Ρ…Ρ†Π²Π±Π½ΠΌ'
vowels = 'Π°ΠΈΠ΅Ρ‘ΠΎΡƒΡ‹ΡΡŽΡ'
result = list(map(lambda x: 'гласная' if x in vowels else 'согласная', st))
print(result)

Π’Ρ‹Π²ΠΎΠ΄:

['гласная', 'согласная', 'гласная', 'согласная', 'согласная', 'гласная', 'гласная', 'гласная', 'гласная', 'согласная', 'согласная', 'согласная', 'гласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная', 'согласная']

А Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ анонимная функция Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· исходного списка Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа, прСвосходящиС 6:

numbers = [7, 8, 6, 9, 4, -6, 2, 0, -3, -12, -5, -2, 12, 77, 32]
print(list(filter(lambda x: x > 6 and x % 2 == 0, numbers)))

8. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ замыканиями – ΠΈΠΌ доступны внСшниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ внутрСнняя лямбда-функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт Π² зависимости ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

def get_min_or_max(value='max'):
    return eval(f'lambda x: {value}(x)')
 
lst = [3, 5, -22, -15, 100, 7, 8, 9, 12, 98]
 
max_func = get_min_or_max()
min_func = get_min_or_max('min')
print(max_func(lst))
print(min_func(lst))

Π’Ρ‹Π²ΠΎΠ΄:

100
-22

9. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ return, pass, assert ΠΈ raise.

10. Подобно ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ функциям, лямбда-выраТСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

  • ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅;
  • ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅;
  • ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ (ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ + ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅);
  • *args;
  • **kwargs.

11. Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для провСдСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² списках:

ops = [(lambda x, y: x + y), (lambda x, y: x - y),
       (lambda x, y: x * y), (lambda x, y: x / y)]

x, y = int(input()), int(input())
for i in range(len(ops)):
    print(ops[i](x, y))

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° для x = 12, y = 15:
27
-3
180
0.8

А Ρ‚Π°ΠΊΠΆΠ΅ Π² словарях:

ops = {'neg': lambda x: abs(x), 'pos': lambda x: x / 2, 'zero': lambda x: x + 5}
lst = list(map(int, input().split()))
for i in lst:
    if i < 0:
        print(ops['neg'](i))
    elif i > 0:
        print(ops['pos'](i))
    else:
        print(ops['zero'](i))

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° для 4 -5 0 6 -3:
2.0
5
5
3.0
3

12. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ списковыми Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, здСсь анонимная функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для возвСдСния элСмСнтов списка Π² ΠΊΡƒΠ±:

my_list = [3, 5, 6, 7, 2, 8, 9, 10]
cubes = map(lambda x: pow(x, 3), my_list) # ΠΈΠ»ΠΈ x ** 3
print(list(cubes))

Однако Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅:

print([i ** 3 for i in my_list])


Π’Ρ‹Π²ΠΎΠ΄:

[27, 125, 216, 343, 8, 512, 729, 1000]

А здСсь лямбда-функция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π±ΠΎΡ€Π° Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΈΠ· списка:

my_list = [4, 2, 3, 5, 16, 12, 2, 8, 9, 10]
print(list(filter(lambda x: x % 2 == 0, my_list)))

Π’Ρ‹Π²ΠΎΠ΄:

[4, 2, 16, 12, 2, 8, 10]

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ даст простоС списковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

print([i for i in my_list if i % 2 == 0])

ΠžΡ‡Π΅Π½ΡŒ часто лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ совмСстно с filter():

lst = ['Ρ€ΠΎΠ»Π»', 'яблоко', 'ΠΊΠ½ΠΈΠ³Π°', 'ΡˆΠ°Ρ€', 'Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ']

print(list(filter(lambda x: len(x) > 4, lst)) )
print(list(filter(lambda x: 'Ρ€' in x, lst)))

Π’ этом случаС списковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ выглядят ΠΏΡ€ΠΎΡ‰Π΅:

print([i for i in lst if len(i) > 4])
print([i for i in lst if 'Ρ€' in i])

Π’Ρ‹Π²ΠΎΠ΄:

['яблоко', 'ΠΊΠ½ΠΈΠ³Π°', 'Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ']
['Ρ€ΠΎΠ»Π»', 'ΡˆΠ°Ρ€']

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ список, состоящий ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ элСмСнтов. Π Π΅ΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ трСмя способами:

  • с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ reduce ΠΈ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • с math.prod();
  • с использованиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

3 5 6 7 8 2 4 3 4

Π’Ρ‹Π²ΠΎΠ΄:

483840

РСшСниС 1:

from functools import reduce 
lst = list(map(int, input().split()))
print(reduce(lambda x, y: x * y, lst))

РСшСниС 2:

import math
lst = list(map(int, input().split()))
print(math.prod(lst))

РСшСниС 3:

def prod(lst):
    prod = 1
    for i in lst:
        prod *= i
    return prod

lst = list(map(int, input().split()))
print(prod(lst))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 2

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для сортировки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ словаря Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС.

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ:

unsorted_dict = {'Ρ„Ρ€ΡƒΠΊΡ‚': 'яблоко', 'Ρ†Π²Π΅Ρ‚': 'Π°Π½Ρ‚Ρ€Π°Ρ†ΠΈΡ‚', 'Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»': 'Π²5678',
                 'модСль': 'Π±Π°Π±ΠΎΡ‡ΠΊΠ°', 'Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅': 'ΠΊΠ½ΠΈΠ³Π°', 'ΠΆΠ°Π½Ρ€': 'Ρ‚Ρ€ΠΈΠ»Π»Π΅Ρ€'}

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

{'Ρ†Π²Π΅Ρ‚': 'Π°Π½Ρ‚Ρ€Π°Ρ†ΠΈΡ‚', 'модСль': 'Π±Π°Π±ΠΎΡ‡ΠΊΠ°', 'Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»': 'Π²5678', 'Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅': 'ΠΊΠ½ΠΈΠ³Π°', 'ΠΆΠ°Π½Ρ€': 'Ρ‚Ρ€ΠΈΠ»Π»Π΅Ρ€', 'Ρ„Ρ€ΡƒΠΊΡ‚': 'яблоко'}

РСшСниС:

unsorted_dict = {'Ρ„Ρ€ΡƒΠΊΡ‚': 'яблоко', 'Ρ†Π²Π΅Ρ‚': 'Π°Π½Ρ‚Ρ€Π°Ρ†ΠΈΡ‚', 'Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»': 'Π²5678',
                 'модСль': 'Π±Π°Π±ΠΎΡ‡ΠΊΠ°', 'Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅': 'ΠΊΠ½ΠΈΠ³Π°', 'ΠΆΠ°Π½Ρ€': 'Ρ‚Ρ€ΠΈΠ»Π»Π΅Ρ€'}
print(dict(sorted(unsorted_dict.items(), key=lambda item: item[1])))

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с сортировкой словаря, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ zip():

print(dict(sorted(zip(unsorted_dict.values(), unsorted_dict.keys()))))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 3

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ список, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС всС слова, состоящиС ΠΈΠ· 5 Π±ΡƒΠΊΠ². Π Π΅ΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ двумя способами – с использованиСм Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спискового Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

физалис Π³Ρ€ΡƒΡˆΠ° слива Π°Ρ€Π±ΡƒΠ· Π±Π°Π½Π°Π½ апСльсин яблоко папайя

Π’Ρ‹Π²ΠΎΠ΄:

Π°Ρ€Π±ΡƒΠ· Π±Π°Π½Π°Π½ Π³Ρ€ΡƒΡˆΠ° слива

РСшСниС 1:

my_lst = input().split()
print(*sorted(list(filter(lambda x: len(x) == 5, my_lst))))

РСшСниС 2:

my_lst = input().split()
print(*sorted([i for i in my_lst if len(i) == 5]))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 4

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая:

  • опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ datetime.datetime.now();
  • ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π½Π΅, мСсяцС ΠΈ Π³ΠΎΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
  • Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ дСнь, мСсяц ΠΈ Π³ΠΎΠ΄ Π½Π° экран.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:

дСнь: 13
мСсяц: 1
Π³ΠΎΠ΄: 2023

РСшСниС:

import datetime
now = datetime.datetime.now()
date = [['дСнь', lambda x: x.day], ['мСсяц', lambda x: x.month], ['Π³ΠΎΠ΄', lambda x: x.year]]
for i in date:
    print(f'{i[0]}: {i[1](now)}')

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π±Π΅Π· лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

import datetime
now = str(datetime.datetime.now())
date = now.split()[0].split('-')
print(f'дСнь: {date[2]}'
      f'\nмСсяц: {date[1]}'
      f'\nΠ³ΠΎΠ΄:  {date[0]}'
      )

Π—Π°Π΄Π°Π½ΠΈΠ΅ 5

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число n ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ n ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

12

Π’Ρ‹Π²ΠΎΠ΄:

0 1 1 2 3 5 8 13 21 34 55 89

РСшСниС:

from functools import reduce
 
fibonacci = lambda n: reduce(lambda x, n: x + [x[-1] + x[-2]], range(n - 2), [0, 1])
n = int(input())
print(*fibonacci(n))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 6

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π²Π΅ строки с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ пСрСсСчСниС строк (ΠΎΠ±Ρ‰ΠΈΠ΅ для ΠΎΠ±Π΅ΠΈΡ… строк элСмСнты) Π±Π΅Π· использования мноТСств.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

3 6 7 8 9 2 1 0 12 45
7 9 0 12 15 5 6 11 43

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅: 7 9 0 12 6

РСшСниС:

lst1 = list(map(int, input().split()))
lst2 = list(map(int, input().split()))

intersection = list(filter(lambda x: x in lst1, lst2)) 
print('ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅:', *intersection)

Π—Π°Π΄Π°Π½ΠΈΠ΅ 7

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая сортируСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ строку с числами ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа ΠΈΠ΄ΡƒΡ‚ послС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…;
  • ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа упорядочСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

-6 -1 3 -5 -15 4 1 9 8 6 -3 -4 12 -10 7

Π’Ρ‹Π²ΠΎΠ΄:

1 3 4 6 7 8 9 12 -15 -10 -6 -5 -4 -3 -1

РСшСниС:

lst = list(map(int, input().split()))
print(*sorted(lst, key = lambda i: 0 if i == 0 else -1 / i))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 8

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π²Π΅ строки с числами, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ строку с поэлСмСнтными суммами чисСл ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строк.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

7 2 3 -5 6 7 0 1 12 45 9 33
32 87 12 -2 4 7 1 3 9 2 4 2

Π’Ρ‹Π²ΠΎΠ΄:

39 89 15 -7 10 14 1 4 21 47 13 35

РСшСниС:

lst1 = list(map(int, input().split()))
lst2 = list(map(int, input().split()))

print(*list(map(lambda x, y: x + y, lst1, lst2)))

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ – с использованиСм zip():

for i, j in zip(lst1, lst2):
    print(i + j, end=' ')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 9

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 1) строку с Π½Π°Π±ΠΎΡ€ΠΎΠΌ слов; 2) ΠΎΠ΄Π½ΠΎ слово, Π½Π΅ входящСС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ строку, ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС Π°Π½Π°Π³Ρ€Π°ΠΌΠΌΡ‹ слова Π² строкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:

ΠΊΠ°ΠΏΡ€ΠΈΠ· ΠΊΠ»ΠΎΡƒΠ½ ΠΊΠΎΠ»Π±Π° ΠΊΠΎΠ»ΡƒΠ½ ΠΊΡ€ΠΎΠ½Π° ΡƒΠΊΠ»ΠΎΠ½ ΠΊΠΎΠ»Ρ‹Π±Π΅Π»ΡŒ ΠΊΠ°Ρ€Ρ‚Π°
ΠΊΡƒΠ»ΠΎΠ½

Π’Ρ‹Π²ΠΎΠ΄:

ΠΊΠ»ΠΎΡƒΠ½ ΠΊΠΎΠ»ΡƒΠ½ ΡƒΠΊΠ»ΠΎΠ½

РСшСниС:

lst = input().split()
word = input()
print(*list(filter(lambda x: (set(word) == set(x)), lst)))

Π—Π°Π΄Π°Π½ΠΈΠ΅ 10

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ надСТности пароля. НадСТный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 9 символов; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π°:

  • Π±ΡƒΠΊΠ²Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС;
  • Π±ΡƒΠΊΠ²Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС;
  • Ρ†ΠΈΡ„Ρ€Π°;
  • ΠΈ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ символа ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° !@#$%^&*()-+.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π° 1:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:  password

Π’Ρ‹Π²ΠΎΠ΄:

Π’ ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС 
Π’ ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Ρ†ΠΈΡ„Ρ€Π° 
ΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· спСцсимволов !@#$%^&*()-+ 
ΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 9 символов

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π° 2:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:  Mur#zilka98

Π’Ρ‹Π²ΠΎΠ΄:

НадСТный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ

РСшСниС:

def check_password(passw):
    res_dict = [
    lambda passw: any(x.isupper() for x in passw) or '\nΠ’ ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС',
    lambda passw: any(x.islower() for x in passw) or '\nΠ’ ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС ',
    lambda passw: any(x.isdigit() for x in passw) or '\nΠ’ ΠΏΠ°Ρ€ΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Ρ†ΠΈΡ„Ρ€Π°',
    lambda passw: any(x in '!@#$%^&*()-+' for x in passw) or '\nΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· спСцсимволов !@#$%^&*()-+',
    lambda passw: len(passw) >= 9 or '\nΠŸΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 9 символов']
    result = [x for x in [i(passw) for i in res_dict] if x != True]
    if not result:
        result.append('НадСТный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ')
    return result    
st = input('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: ')
print(*check_password(st))

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ рСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

***

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ самоучитСля

  1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ, сфСры примСнСния, установка, ΠΎΠ½Π»Π°ΠΉΠ½ IDE
  2. ВсС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для изучСния Python с нуля – ΠΊΠ½ΠΈΠ³ΠΈ, сайты, ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ курсы
  3. Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
  4. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками
  5. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками ΠΈ списковыми Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ
  6. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со словарями ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ словарСй
  7. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ
  8. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со мноТСствами
  9. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ†ΠΈΠΊΠ»Π° for
  10. Условный Ρ†ΠΈΠΊΠ» while
  11. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ
  12. АнонимныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  13. РСкурсивныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  14. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка, замыкания ΠΈ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹
  15. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой
  16. РСгулярныС выраТСния
  17. ΠžΡΠ½ΠΎΠ²Ρ‹ скрапинга ΠΈ парсинга
  18. ΠžΡΠ½ΠΎΠ²Ρ‹ ООП: инкапсуляция ΠΈ наслСдованиС
  19. ΠžΡΠ½ΠΎΠ²Ρ‹ ООП – абстракция ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ
  20. ГрафичСский интСрфСйс Π½Π° Tkinter
  21. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Π½Π° Pygame
  22. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQLite
  23. ΠžΡΠ½ΠΎΠ²Ρ‹ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Flask
  24. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с NumPy
  25. ΠžΡΠ½ΠΎΠ²Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… с Pandas

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
28 июня 2018

3 самых Π²Π°ΠΆΠ½Ρ‹Ρ… сфСры примСнСния Python: возмоТности языка

БущСствуСт мноТСство областСй примСнСния Python, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ особСнно...
admin
13 фСвраля 2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Пошаговая инструкция для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python...