Модуль 15.7 (Анонимные функции. Часть 1) курса «Поколение Python: курс для продвинутых» курс расскажет о:
- Определение анонимных функций
- Условный оператор в теле анонимной функции
- Передача аргументов в анонимную функцию
- Ограничения анонимных функций
Публикуем решения на урок 15.7 Анонимные функции. Часть 1.
Именем какой греческой буквы названо ключевое слово Python, объявляющее анонимную функцию?
лямбда
Нужно ли заключать параметры анонимных функций в скобки?
нет
Анонимная функция – это функция
у которой есть тело, но нет имени
Анонимные функции в Python
могут иметь *args и **kwargs
являются замыканиями (могут замыкать переменные из внешнего контекста)
состоят из одного выражения (возможно, составного)
в виде объявления сами являются выражениями
Выберите правильный вариант написания лямбда-выражения для функции f(x)=2x+1.
f = lambda x: 2*x + 1
Что будет напечатано в результате работы программы?
func = lambda x, y: x ** y
print(func(5, 3))
125
Что будет напечатано в результате работы программы?
func = lambda x, y: x + y
print(func(‘5’, ‘3’))
53
Что будет напечатано в результате работы программы?
funcs = [lambda x: x ** 0.5, lambda x: x ** 2, lambda x: x ** 3]
print(funcs[1](9))
81
Что будет напечатано в результате работы программы?
users = [(‘Timur’, 28), (‘Ruslan’, 21), (‘Roman’, 30), (‘Soltan’, 24), (‘Robert’, 1)]
result = max(users, key=lambda x: x[1])
print(result)
('Roman', 30)
Что будет напечатано в результате работы программы?
from functools import reduce
numbers = range(10)
obj = map(lambda x: x + 1, numbers)
obj = filter(lambda x: x % 2 == 1, obj)
result = reduce(lambda x, y: x + y, obj, 0)print(result)
25
Что будет напечатано в результате работы программы?
result = list(map(lambda x: x.split(), [‘a’, ‘a b’, ‘a b c’]))
print(result)
[['a'], ['a', 'b'], ['a', 'b', 'c']]
Что будет напечатано в результате работы программы?
high_ord_func = lambda x, func: x + func(x)
result = high_ord_func(2, lambda x: x * x) + high_ord_func(5, lambda x: x + 3)
print(result)
19
Что будет напечатано в результате работы программы?
dict1 = {‘x’: 1}
dict2 = {‘y’: 2}
dict3 = {‘x’: 3, ‘y’: 4}result = list(filter(lambda d: ‘x’ in d.keys(), [dict1, dict2, dict3]))
print(result)
[{'x': 1}, {'x': 3, 'y': 4}]
Требовалось написать программу, которая:
— преобразует список
floats
в список чисел, возведенных в квадрат и округленных с точностью до одного десятичного знака;— фильтрует список
words
и оставляет только палиндромы длиной более 44 символов;— находит произведение чисел из списка
numbers
.Программист торопился и написал программу неправильно. Доработайте его программу.
from functools import reduce
floats = [4.35, 6.09, 3.25, 9.77, 2.16, 8.88, 4.59, 34.23, 12.12, 4.67, 2.45, 9.32]
words = ['racecar', 'akinremi', 'deed', 'temidayo', 'omoseun', 'civic', 'TATTARRATTAT', 'malayalam', 'nun']
numbers = [4, 6, 9, 23, 5]
# Исправьте этот код
map_result = list(map(lambda num: round(pow(num, 2), 1), floats))
filter_result = list(filter(lambda name: name == name[::-1] and len(name) > 4, words))
reduce_result = reduce(lambda num1, num2: num1 * num2, numbers, 1)
print(map_result)
print(filter_result)
print(reduce_result)
Напишите программу, которая с помощью встроенных функций
filter(), map(), sorted()
иreduce()
выводит в алфавитном порядке список primary городов с населением более 10 000 000 человек, в формате:Cities: Beijing, Buenos Aires, …
from functools import reduce
data = [['Tokyo', 35676000, 'primary'],
['New York', 19354922, 'nan'],
['Mexico City', 19028000, 'primary'],
['Mumbai', 18978000, 'admin'],
['Sao Paulo', 18845000, 'admin'],
['Delhi', 15926000, 'admin'],
['Shanghai', 14987000, 'admin'],
['Kolkata', 14787000, 'admin'],
['Los Angeles', 12815475, 'nan'],
['Dhaka', 12797394, 'primary'],
['Buenos Aires', 12795000, 'primary'],
['Karachi', 12130000, 'admin'],
['Cairo', 11893000, 'primary'],
['Rio de Janeiro', 11748000, 'admin'],
['Osaka', 11294000, 'admin'],
['Beijing', 11106000, 'primary'],
['Manila', 11100000, 'primary'],
['Moscow', 10452000, 'primary'],
['Istanbul', 10061000, 'admin'],
['Paris', 9904000, 'primary']]
lst = filter(lambda x: x if "primary" in x and x[1] > 10000000 else False,data)
new_data = sorted(map(lambda x: x[0], lst))
print("Cities:", reduce(lambda x,y: x + ", " + y, new_data))
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы