Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 October 12

К

Константин in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Я нашел в интернете это решение и хотел его разобрать на простые составляющие так как сам способ довольно интересный, а так как не получилось самому разобраться, решил узнать у тех кто может помочь)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
E731
источник

К

Константин in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Спасибо
источник

E

Eagint in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
def f(): return 42

Kappa
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
лямбды нужны, но пока не забивайте особо голову
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
например когда какая-нибудь функция, скажем сортировки на вход принимает список элементов и функцию для того чтобы сравнивать 2 элемента между собой
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
def find_max(arr: list, compare=lambda x,y: x > y) -> int:
   if not len(arr):
       raise Exception
   max_item = arr[0]
   for item in arr:
       if compare(item, max_item):
           max_item = item
   return max_item


print(find_max([0, 1, 2, 3, 4, 5]))

print(find_max([(0, 0), (1, 1), (2, 2), (3, 3), (4, 4),(5, 5)], lambda x, y: x[0]**2 + x[1]**2 > y[0]**2 + y[1]**2))

например типа такого
функция которая находит наибольший элемент в списке
по умолчанию - функция сравнения сравнивает int
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
но мы можем подать например список векторов на вход
и любых вообще объектов
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и должны для них функцию сравнения описать
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
для векторов мы уже сравниваем длинны
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну или это какое-то,может быть условие для фильтра, в общем лямбда функция - это анонимная функция временная
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
но в питоне - все объект и можно присвоив какому-то идентификатору ее создать ссылку
источник

ДК

Даниил Кустов... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
std::slavik
но в питоне - все объект и можно присвоив какому-то идентификатору ее создать ссылку
Под капотом это как указатели работает?
источник

Тᅠ

Туночка ᅠᅠ... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
std::slavik
например когда какая-нибудь функция, скажем сортировки на вход принимает список элементов и функцию для того чтобы сравнивать 2 элемента между собой
Можно же просто определить сравнение для объедков
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
еще как плюс - оптимизация автоматически - как только объект из области видимости пропадает - его сразу же убивает сборщик мусора
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
он определяет когда можно очистить какой объект подсчитывая количество ссылок на объекты
reference counter т.н.
если на объект никто не ссылается - значит он не нужен
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
присваивая имя функции - мы создаем ссылку которая может долго висеть
источник