Pull to refresh
3
Send message

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Reading time7 min
Reach and readers440K
Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

Частая проблема при изучении коллекций заключается в том, что разобрав каждый тип довольно детально, обычно потом не уделяется достаточного внимания разъяснению картины в целом, не проводятся чёткие сходства и различия между типами, не показывается как одну и туже задачу решать для каждой из коллекций в сравнении.

Вот именно эту проблему я хочу попытаться решить в данном цикле статей – рассмотреть ряд подходов к работе со стандартными коллекциями в Python в сравнении между коллекциями разных типов, а не по отдельности, как это обычно показывается в обучающих материалах. Кроме того, постараюсь затронуть некоторые моменты, вызывающие сложности и ошибки у начинающих.

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:


  1. Классификация коллекций;
  2. Общие подходы к работе с коллекциями;
  3. Общие методы для части коллекций;
  4. Конвертирование коллекций.
Читать дальше →

Умный дренажный колодец на ESP32: уведомление в телефон — вместо «сюрпризов» в унитазе, дешевле готовых решений в разы

Reading time6 min
Reach and readers12K

Этот девайс больше всего актуален для тех, кто живёт в загородном доме и уже знаком с особыми «сюрпризами» в унитазе, когда дренажный колодец переполняется.

Вы бежите к колодцу, поднимаете тяжеленную крышку, а там... уже всё плавает. А через пару минут доходит осознание: насос благополучно проспал момент включения. Привет, внеплановые 20 минут откачки и «удобрение» участка самым неожиданным способом.

Я посмотрел в сторону готовых решений за 3000+ рублей (используют емкостной метод (измеряют точный уровень 0-100%), имеют качественный корпус, готовое приложение и гарантию), но обнаружил, на мой взгляд, подводные камни: мало отзывов — устройства довольно новые на рынке, закрытая система — нельзя ничего доработать под свои нужды.

А мне было нужно простое, как лопата, решение. Чтобы устройство оповестило меня: «Колодец полный, не желаешь ли включить насос? ПОЖАЛУЙСТА 😠» — и желательно в Telegram, где я точно замечу это сообщение.

Да ну, серьёзно?

Гайд по ориентации Wi-Fi антенн для роутеров и при чем тут пончики

Level of difficultyEasy
Reading time10 min
Reach and readers30K

Привет Хабр! Меня зовут Алексей и я занимаюсь беспроводными технологиями. На написание этой статьи меня сподвиг комментарий уважаемого @NightFlight который обратил внимание, что многие пользователи ориентируют антенны у роутеров по типу ориентации «заячьи уши» \/ так, как это делали для комнатных телевизионных антенн. В этой статье вспомню немного теории, расскажу о разных типах антенн, поляризации, и о том как лучше ориентировать антенны у бытовых роутеров в зависимости от их количества и как ориентация может повлиять на beamforming.

Правильная ориентация антенн Wi-Fi роутера может существенно улучшить качество беспроводного соединения, увеличить скорость передачи данных и расширить зону покрытия сети. Согласно моим тестам, оптимизация расположения антенн способна повысить скорость соединения на 50-300%, а в некоторых случаях улучшить уровень сигнала на 2-4 дБ, что критически важно для устройств, находящихся на границе зоны покрытия. При неправильной ориентации, особенно при несовпадении поляризации передающей и приемной антенн, потери сигнала могут достигать 20 дБ, что фактически делает соединение невозможным.

Читать далее

Как написать простейшую нейросеть на python, простыми словами о сложном

Level of difficultyEasy
Reading time8 min
Reach and readers45K

В мире Data Science написание нейронных сетей, кажется чем‑то очень трудоёмким, доступным для понимания лишь математикам с многолетним опытом. Многие руководства, начинаются со сложных объяснений backpropagation, градиентного спуска и т.п, от которых у новичков складывается впечатление, что написание нейросетей — им не по силам. В данной статье, я хочу развеять подобные убеждения и показать пример, написания простейшей нейронной сети на python. Мы не будем углубляться в теоретические основы высшей математики. Вместо этого, мы просто возьмем данные, напишем код, посмотрим на результат и проанализируем его.

Читать далее

Первый http сервер на С++, заметки для новичков

Level of difficultyEasy
Reading time10 min
Reach and readers11K

Решил написать простенькую статейку по следам реализации небольшой программки на С++ под Виндоус, которая содержит в себе TCP сервер. Мы получаем от клиента http запрос. Соединение не защищенное.

На чем реализован клиент нам неизвестно: может на php (curl,socket,stream_contex_create,...), может на js (ajax), вообще может быть на чем угодно.

Надо задача реализовать http парсинг запроса и контента, выполнить задание (на каком-то подключенном к серверу оборудовании) и ответить клиенту о результате.

Примечание: автор реализует http сервер на устаревшем Qt4, используем QTcpServer. Но для http сервера это не принципиально.

Читать далее

Включаем функции сбора статистики в ESP32-arduino для PlatformIO

Level of difficultyMedium
Reading time7 min
Reach and readers6.2K

При использовании arduino framework в PlatformIO нет возможности конфигурирования esp32 arduino core, больша́я часть функций по умолчанию отключена, а для изменения конфигурации предлагается вручную пересобирать SDK. Давайте пройдем этот квест.

Речь пойдет о функциях FreeRTOS vTaskGetRunTimeStats / vTaskList, но таким же образом можно изменить и другие опции sdkconfig.

Читать далее

«База» по метрикам в Prometheus

Level of difficultyMedium
Reading time12 min
Reach and readers47K

Привет, Хабр! Меня зовут Глеб Типсин, я являюсь ведущим разработчиком продукта «Системы персонализации и геймификации» в SM Lab.

В этой статье мы разберём, как устроены метрики в Prometheus, как происходит их сбор, а также что с ними можно делать. Кроме того, обсудим подходы в мониторинге, архитектуру Prometheus и её ограничения.

Материал подойдёт тем, кто только знакомится с мониторингом и хочет освоить «базу», а также тем, кто уже работает с Prometheus, но хочет "освежить" свои знания и узнать что-то новое.

Читать далее

История бюджетной автоматизации отопления в Home Assistant

Level of difficultyEasy
Reading time12 min
Reach and readers37K

В этой статье хочу рассказать как я узнал что такое умный дом на примере управления отопительным котлом. Чтобы долго не подводить, скажу сразу, что статья о том, как мне удалось подключить электрический котел Protherm Ray 18, который работает по EBUS, к Home Assistant. Все сейчас работает хорошо, но некоторые проблемы еще не решил. О всем расскажу по порядку.

Читать далее

Home Assistant на Raspberry Pi 5

Level of difficultyMedium
Reading time19 min
Reach and readers51K

Театр начинается с вешалки, дом с фундамента, а умный дом с сервера умного дома. И эта история будет о там как из малинки, москита, пчелиной сети и красного узла приготовить сервер умного дома так что бы всем котикам хватило доков, и при этом роботы-пылесосы не захватили мир.

Поскакали

Умный дом, опыт построения, бег по граблям (MajorDomo, Tasmota и Алиса)

Reading time8 min
Reach and readers94K

Решил обобщить и систематизировать накопленный опыт в создании умного дома. Началось все с управления розетками (светом) на даче – если уехал и забыл выключить свет, можно через интернет выключить и спать спокойно. Потом появилось ограничение по мощности и желание автоматически реагировать на превышение мощности отключением маловажных потребителей типа чайника. Ну а дальше уже сложно остановиться. Климат, автономное электроснабжение, комфортный свет и все это - не вкладывая много денег, хотя если все посчитать..

Опыт был и положительный и отрицательный. Говорят, хорошо учиться на чужих ошибках, так что сохраняю описание моих изысканий для других.

Подробности тут

Объяснение Kafka на примерах из Factorio

Reading time4 min
Reach and readers27K
Недавно я как обычно играл в Factorio после рабочего дня — и вдруг меня поразила удивительная мысль. Как много здесь аналогий с Apache Kafka!


Если у вас мало свободного времени, не скачивайте Factorio

Для тех, кто в последние годы путешествовал за пределами цивилизации, на всякий случай поясню: Factorio — это стратегия реального времени с открытым миром, где вы строите и оптимизируете цепочки поставок, чтобы запустить спутник и восстановить связь с родной планетой, а Kafka — это распределённая платформа потоковой передачи событий, которая обрабатывает асинхронные коммуникации надёжным способом.

Если человек вообще никогда не работал с потоковой платформой, то ему станет всё понятно на примерах из игры. Что ж, давайте начнём с нуля, изучим основные концепции Kafka — и немного повеселимся.
Читать дальше →

Как прокачать свою продуктивность с помощью музыки?

Reading time9 min
Reach and readers8.7K

Теме “Как повысить собственную эффективность” посвящено тысячи книг и статей, видеороликов и тренингов. И судя по тому, что материалов с каждым днем всё больше и больше, а запросы в гугл не прекращаются — тема сложная, и толком не решенная. Существует сотни подходов к решению, начиная от приёма лекарственных препаратов, заканчивая организацией своего рабочего дня. В этой статьи мы предлагаем довольно необычный способ повысить собственную эффективность — с помощью функциональной музыки.

Этот подход далеко не нов, еще в двадцатом веке в советском союзе пытались повысить эффективность труда заводских рабочий с помощью музыки например, знаменитый опыт на Пермском телефонном заводе. В Америке на широкую ногу развернулась компания “Muzak”, которая сначала писала плейлисты для рабочих на мебельной фабрике, а после — для магазинов, отелей и даже лифтов. Знаменитая расслабляющая музыка, которую мы слышим в кинофильмах, когда персонажи куда-то поднимаются — изобретение “Muzak”.

Разумеется, использование функциональной музыки для повышения продуктивности не является универсальным средством, подходящим для всех и каждого. Строго говоря, этот способ является скорее вспомогательным, который неплохо сочетать с другими способами повышения собственной продуктивности.

Авторами было проработано около сотни книг и научных статей, и результаты исследований представлены нами ниже.

Читать далее

Регулярные выражения (regexp) — основы

Reading time21 min
Reach and readers1.5M

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее

Все уроки по ардуино

Reading time5 min
Reach and readers305K
Однажды появилась необходимость собрать все уроки, обучающие материалы (tutorials) с habrahabr и geektimes в одном месте и немного их систематизировать. В этом сборнике обучаек представлены более 100 статей на тему ардуино с пометкой «tutorial», либо содержащие несложные для новичков проекты на ардуино, а также немного видеоуроков по смежным темам. Статьи разделены на 10 тематик по сферам применения собранных устройств. Также хочется напомнить, что весь обучающий материал, опубликованный на habrahabr и geektimes является интерактивным: в любой момент можно задать вопрос автору в комментариях к статье. Как правило авторы на них отвечают. Этот сборник будет дополняться новыми обучайками (tutorials) по мере их публикации.

Читать дальше →

UTF-8 кодировка в названиях и паролях Wi-Fi (Emoji)

Reading time4 min
Reach and readers53K
В 2012 году появилась возможность использовать в названии сети Wi-Fi символы UTF-8. Первое, что приходит на ум — выделиться из серой массы и использовать в названии сети смайлики Emoji. А еще, можно сделать Emoji пароль, тогда друзьям можно смело сообщать: «Подключись к Wi-Fi сети бесплатный сыр, пароль: кружка пива и печенька».

Читать дальше →

MySQL шпаргалки

Reading time3 min
Reach and readers837K
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

Читать дальше →

25 вопросов задаваемых на собеседовании системным администраторам Linux

Reading time6 min
Reach and readers176K
Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm ;-)
Внимание! Много букв и нет картинок.
От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя ;-)
Читать дальше →

Все, что Вы хотели знать о Chromecast или как сделать обычный телевизор чуть умнее за 35$

Reading time12 min
Reach and readers281K

Вводная


Целью данного поста является актуализация информации о замечательном устройстве от Google, а именно — Chromecast.
В связи с последними обновлениями от Google, данное устройство получило намного больший функционал, чем описано ранее на Хабре в обзоре от zvic и обзоре от khoroshev.
По отзывам в сети, многие разочаровались в этом устройстве, у многих оно лежит в ящике, а многие просто избавились от него, т.к. не нашли ему применение.
Забегая вперед, скажу, что одно из главных достоинств устройства — проигрывание локальных файлов с телефона/планшета/компьютера, находящегося в одной Wi-Fi сети. Также можно стримить на телевизор онлайн-видео из различных программ.
Интересно? Тогда прошу под кат.
Читать дальше →

Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям

Reading time12 min
Reach and readers116K
1

Information

Rating
Does not participate
Registered
Activity