Учу язык, подскажите есть ли какой то duolingo, но только для программистов?) Гонять себя по синтаксису, методы, задачки может какие то, правила итп. Так чтобы пока на работе, потыкаться позапоминать. Чтобы каждый раз не гуглить метод из за того что не помню уже. Может я много хочу конечно, но вдруг. Я понимаю что есть документация, на своей работе документацию трудно читать(отвлекаюсь часто)
Всех приветствую, сегодня пойдет речь о функциях filter и map, которые часто используются совместно с lambda, так что затронем и её. весь код размещен на GITHUB (все примеры пронумерованы в том же порядке, в котором они идут в посте)
Map
функция map принимает следующие аргументы map(func, *iterables) и возвращает итератор, чтобы его превратить в удобоваримый вид надо обернуть его в какую-либо структуру данных, далее в примерах мы будет превращать все итераторы в list. Что означает (*) перед iterables? Это указывает на то, что мы можем передавать сколь угодно большое число наших итерируемых объектов (списков, кортежей и т.д.), но из этого следует логичный вопрос, что если мы передали три списка, а количество элементов у них разное?
Давайте приведу пример функции, которая принимает два числа и возвращает их сумму:
В списке ans у нас будет храниться список, который будет равен [2, 92], почему так? Потому что мы пробегаем по первым min(len(*iterables)) аргументам и суммируем только их, остальные мы игнорируем, так например мы проигнорировали тройку в первом множестве {1, 2, 3}.
Map используют с основными функциями, такими как str, strip, split, int и другими.
Давайте представим, что вы спарсили айдишники сотрудников (изначально они в str) и хотим превратить их в int => напишем следующую строчку:
Мы напечатаем список, в котором будет изменены все строчки на числа (ВНИМАНИЕ! ЕСЛИ МЫ НАПЕЧАТАЕМ list_id, ТО ОН ОСТАНЕТСЯ НЕИЗМЕННЫМ! map НЕ изменяет сам список)
Чтобы применить более сложные функции, например strip или split, то нужно написать чуть более сложную конструкцию. Например в txt файле данные хранятся так: 'apple 1$ mango 20$ orange 3$', мы уже превратили их в список и уже имеем ['apple 1$', 'mango 20$', 'orange 3$'], а хотим получить на выходе это [['apple', '1$'], ['mango', '20$'], ['orange', '3$']] чтобы получить нашу зарплату в 100000$ => нам нужно написать функцию map:
Приведу еще один пример с функцией map, допустим у нас есть n - ое количество сотрудников нашей компании, которые работают на удаленке и мы им должны выдать уникальные айдишники, по типу (пол сотрудника - {id}).
Это можно было решить простым перебором от 0 до len(list_employees), но так как мы хотим именно рандомные айди, то сделали чуть сложнее. Что мы делаем? мы создали функцию get_random_id, которая принимает текущего пользователя, затем получает рандомное число и сохраняет его в список used_id (чтобы id не повторялись).
Также можно переписать данное решение без применение map:
Мы получим аналогичный результат, но в первом случае мы не только получили более читаемый и приятный глазу код, но можем использовать данную функцию много раз в коде => соблюдаем основной принцип разработки DRY (Don't repeat yourself)
Разберемся теперь с lambda функцией и как её совмещать с map, вообще lambda функции - это отдельная тема для разговора и про неё можно много что сказать, так что углубляться в дебри не будем, а скажу, что это тоже самое, что и функция, только написана в одну строчку. Сравним lambda и def:
lambda функцию вы ВСЕГДА можете заменить аналогичной функцией def, lambda функции используют лишь для того, чтобы не было нагромождение бессмысленных функций и код был более понятен.
Filter
В функция filter принимает следующие параметры: filter (function, iterable), что означает, что он принимает только 2 аргумента - функция и структура данных к которой будет применена фильтрация, то есть выборка элементов, которые удовлетворяют функции. Возвращает итератор, с подходящими под условие (заданное function) элементами iterable
Приведу такой пример: У нас есть сайт, на котором зарегистрированы люди от 0 до 99 лет. Мы хотим узнать сколько людей у нас на сайте старше 50 лет, для этого напишем следующее:
В итоге получим такой результат: [['user1', 90], ['user2', 78]], то есть мы получили те элементы, которые подошли под условие current_user[-1] > 50
На этом все )
Надеюсь вы поняли что такое map и filter.
Если вам понравилось как я пишу, можете посетить мои остальные аккаунты:
Несмотря на капризы погоды, лето неумолимо приближается. Значит, занятия в спортивном зале или домашние тренировки получится заменить на активности под открытым небом. Собрали для вас товары, которые сделают уличные воркауты интереснее, увлекательнее и полезнее.
Мегамаркет дарит пикабушникам промокод килобайт. Он дает скидку 2 000 рублей на первую покупку от 4 000 рублей и действует до 31 мая. Полные правила здесь.
В компактную поясную сумку поместятся телефон, ключи, кошелек или другие нужные мелочи. Во время тренировки все это не гремит и не мешает, но всегда находится под рукой. Материал сумки прочный и влагонепроницаемый, вещи в ней защищены от повреждений, царапин или пота.
С фитнес-резинкой можно тренировать все группы мышц: руки, ноги, кор, ягодицы. А еще она облегчает подтягивания и помогает мягко растягиваться. В сети можно найти огромное количество роликов с упражнениями разной степени сложности. Нагрузка легко дозируется: новичкам подойдет резинка с сопротивлением до 23 кг, опытным атлетам — до 57 кг. При этом оборудование максимально компактно и поместится даже в небольшую сумку.
Для тех, кому надоели обычные тренировки. Слэклайн — это стропа шириной 50 мм, с помощью которой осваивают хождение по канату. Тренажер учит сохранять баланс, прокачивает координацию и концентрацию, а еще дает отличную нагрузку на спину, руки и ноги.
Настольный теннис — простой в освоении вид спорта, который отлично помогает размяться и тренирует скорость реакции. В комплект входят две ракетки, три мяча, сетка, накладка и чехол — все, что нужно, чтобы поиграть вечером во дворе с другом или устроить небольшие соревнования. Этот недорогой набор подойдет именно для развлечения и веселья, устанавливается почти на любой стол.
Еще один вид спорта, которым можно заниматься, даже не имея серьезной подготовки — бадминтон. С набором от Wish Steeltec вы сможете потренировать силу удара, побегать и просто хорошо провести время. Детали яркие, так что их трудно потерять даже на природе. Леска натянута прочно, ресурса ракеток должно хватить не на один сезон.
Фрисби воспринимается как простое пляжное развлечение. Тем не менее перекидывание друг другу тарелки задействует все группы мышц и развивает скорость реакции. Эта тарелка летит далеко и по понятной траектории — отличный снаряд для начала. Кстати, фрисби — это еще и ряд спортивных дисциплин со своими правилами и техническими сложностями, так что игра с друзьями может перерасти в серьезное увлечение.
Стильный мяч из износостойкой резины отлично подходит для уличных тренировок. Вы сможете поиграть компанией в баскетбол или стритбол или просто отработать броски. При производстве используется технология сбалансированного сцепления: это значит, что снаряд не сбежит от вас и будет двигаться по стабильной траектории.
Футбол — один из самых популярных в России видов спорта. Играя, можно отлично побегать, потренировать меткость и отработать взаимодействие в команде. Футбольный мяч Torres Striker выполнен из качественного полиуретана и резины и выдержит не один десяток матчей, не потеряв упругости. Отличная балансировка и оптимальный размер делают его подходящим как для взрослых, так и для подростков. Он достаточно тяжелый, почти как в профессиональном спорте, так что совсем малышам не понравится.
Пляжный или обычный волейбол? А может быть, пионербол, как в детском лагере? Мяч TORRES SIMPLE COLOR подойдет для любой из этих игр. Камера отлично держит давление, поэтому вам не придется постоянно подкачивать его, а качественные материалы (полиуретан и бутил) сохраняют все характеристики даже при интенсивном использовании.
Многоскоростной велосипед с рамой 19-го размера подойдет как мужчинам, так и женщинам. Это отличный вариант для новичков: модель доступная, удобная. Поможет понять, нравится ли вам велоспорт. Конструкция велосипеда позволяет ездить по дорогам разных типов, поэтому вы сможете перемещаться по городу или отправиться в поход. Есть складной механизм — велосипед с ним легко возить в машине, на электричке и просто хранить в кладовке.
Более продвинутая модель для тех, кто уже оценил прелесть движения на двух колесах. Геометрия велосипеда предполагает вертикальную посадку. Это обеспечивает более удобное положение тела, чем на других байках. В конструкции предусмотрены детали для комфорта и безопасности: пружинная вилка с ходом 100 мм, сервисная подводка тросов и дисковые гидравлические тормоза.
Если вы не фанат велоспорта, но хотите получить свою дозу физической нагрузки, перемещаясь по городу, выбирайте самокат. В модели PLANK Magic 200 есть регулировка руля по высоте, надежные тормоза и прочная увеличенная дека из алюминия. Когда вы катаетесь на самокате, работают мышцы ног, ягодиц, спины и живота, а заодно добираетесь, куда нужно. Если вы решите сделать паузу в тренировках, самокат легко складывается для хранения.
Любая активность на свежем воздухе требует хорошей обуви, специально сделанной для занятий спортом. Яркие кроссовки Hoka RINCON 3 с облегченным весом амортизируют, снижают нагрузку на суставы. Выраженный рельеф подошвы обеспечивает сцепление с поверхностью вне зависимости от того, где проходит тренировка: на специальной площадке, асфальте или грунте.
Легкие женские кроссовки из линейки Clifton подходят для занятий на твердых покрытиях. Дышащий сетчатый верх поддерживает вентиляцию стоп, чтобы можно было тренироваться даже в жару. Подошва из легкой пены EVA гасит силу ударов. Кроссовки беговые, подходят для тренировок на длинных дистанциях.
Во время занятий на свежем воздухе важно защитить голову от перегрева. С этим отлично справится легкая и светлая бейсболка — например, от GLHF. Она удобно сидит на голове, не сваливается и не отвлекает от занятий, благодаря сетке голова меньше потеет. Козырек жесткий и не мнется.
Не забудьте защитить кожу от солнца — чтобы не было мучительно больно на следующий день после тренировки под открытым небом. В этом поможет крем против пигментных пятен с сильной защитой от ультрафиолета SPF50. Водостойкая текстура легко наносится и быстро впитывается, действует два часа — потом крем нужно обновить.
Удобные и стильные солнцезащитные очки защищают глаза благодаря фильтру UV400, который поглощает до 99.99% ультрафиолета. Они выполнены из легких материалов и плотно прилегают к голове. Ударопрочные поликарбонатные линзы с антибликовым покрытием подходят для разных видов спорта.
Используйте промокод килобайт на Мегамаркете.Он дает скидку 2 000 рублей на первую покупку от 4 000 рублей и действует до 31 мая. Полные правила здесь.
Реклама ООО «МАРКЕТПЛЕЙС» (агрегатор) (ОГРН: 1167746803180, ИНН: 9701048328), юридический адрес: 105082, г. Москва, ул. Спартаковская площадь, д. 16/15, стр. 6