Подсчет частотности элементов в списке
Отличный способ посчитать частотность элемента в списке — это использование класса Counter.
Счетчик Python отслеживает частотность каждого элемента в контейнере. Counter() возвращает словарь с элементами в качестве ключей и частотностью в качестве значений.
Мы также используем функцию mostcommon() , чтобы получить mostfrequent element в списке.
Подписывайтесь на канал 👉@pythonofff
Отличный способ посчитать частотность элемента в списке — это использование класса Counter.
Счетчик Python отслеживает частотность каждого элемента в контейнере. Counter() возвращает словарь с элементами в качестве ключей и частотностью в качестве значений.
Мы также используем функцию mostcommon() , чтобы получить mostfrequent element в списке.
Подписывайтесь на канал 👉@pythonofff
👍2❤1
geopy
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Подписывайтесь на канал 👉@pythonofff
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
$ pip install geopy
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Подписывайтесь на канал 👉@pythonofff
Аннотации типов: Union и Optional
Ранее на канале был пост про базовые аннотации типов. Но важно знать и про такие аннотации, как Union и Optional.
При необходимости допустить использование не любых типов, а только некоторых, можно использовать аннотацию Union[T, ...] с указанием списка типов в квадратных скобках.
Для объявления опциональных переменных используется Optional[T]. Такая аннотация нужна для переменных, которые либо имеют значение определенного типа, либо равны None.
Кстати, аннотация Optional[T] эквивалентна Union[T, None].
Подписывайтесь на канал 👉@pythonofff
Ранее на канале был пост про базовые аннотации типов. Но важно знать и про такие аннотации, как Union и Optional.
При необходимости допустить использование не любых типов, а только некоторых, можно использовать аннотацию Union[T, ...] с указанием списка типов в квадратных скобках.
Для объявления опциональных переменных используется Optional[T]. Такая аннотация нужна для переменных, которые либо имеют значение определенного типа, либо равны None.
Кстати, аннотация Optional[T] эквивалентна Union[T, None].
Подписывайтесь на канал 👉@pythonofff
Проверка строки на палиндром
Этот метод прост в использовании, а также хорош, и вы можете использовать его на соревнованиях, но люди обычно не предпочитают использовать его в интервью.
Таким образом палиндромы становятся простейшей программой в Python.
Подписывайтесь на канал 👉@pythonofff
Этот метод прост в использовании, а также хорош, и вы можете использовать его на соревнованиях, но люди обычно не предпочитают использовать его в интервью.
Таким образом палиндромы становятся простейшей программой в Python.
Подписывайтесь на канал 👉@pythonofff
Заменяем часть строки
Со строками в Python работать очень удобно, так как встроенных методов для них предостаточно. Одним из методов является str.replace(), который позволяет заменять части строк.
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий, опциональный, аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию, все вхождения заменяются.
Подписывайтесь на канал 👉@pythonofff
Со строками в Python работать очень удобно, так как встроенных методов для них предостаточно. Одним из методов является str.replace(), который позволяет заменять части строк.
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий, опциональный, аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию, все вхождения заменяются.
Подписывайтесь на канал 👉@pythonofff
👍1
Объединение списка строк в одну строку
Метод join() объединяет список строк, заданный как аргумент, в одну строку. В нашем случае мы объединили их, используя в качестве разделителя запятую.
Подписывайтесь на канал 👉@pythonofff
Метод join() объединяет список строк, заданный как аргумент, в одну строку. В нашем случае мы объединили их, используя в качестве разделителя запятую.
Подписывайтесь на канал 👉@pythonofff
👍3
Создаем пакеты
Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, пакеты нужны для формирования пространства имен, чтобы можно работать с пакетами и модулями через точку, как в примере выше.
При импорте вида from package import * будет подключены либо все модули и объекты модуля __init__.py, либо то, что находится в переменной __all__ в том же модуле __init__.py — подробнее про эту переменную было в посте ранее.
Также примечателен файл init.py, который раньше был обязателен для создания пакетов. С версии Python 3.3 его необходимость пропала. Однако его функциональность на этом не заканчиваются.
Подписывайтесь на канал 👉@pythonofff
Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, пакеты нужны для формирования пространства имен, чтобы можно работать с пакетами и модулями через точку, как в примере выше.
При импорте вида from package import * будет подключены либо все модули и объекты модуля __init__.py, либо то, что находится в переменной __all__ в том же модуле __init__.py — подробнее про эту переменную было в посте ранее.
Также примечателен файл init.py, который раньше был обязателен для создания пакетов. С версии Python 3.3 его необходимость пропала. Однако его функциональность на этом не заканчиваются.
Подписывайтесь на канал 👉@pythonofff
👍2
Функция enumerate для получения пар индекс-значение
Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик.
Подписывайтесь на канал 👉@pythonofff
Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик.
Подписывайтесь на канал 👉@pythonofff
Завершение программы
Функция exit создана для удобства работы в интерактивном режиме, однако не рекомендуется использовать её внутри скриптов.
По факту функция просто поднимают исключение SystemExit. А при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора.
Использовать sys.exit() стоит потому, что этот метод лежит в стандартном модуле и всегда там доступен. Также это довольно явный способ завершения программы.
Подписывайтесь на канал 👉@pythonofff
Функция exit создана для удобства работы в интерактивном режиме, однако не рекомендуется использовать её внутри скриптов.
По факту функция просто поднимают исключение SystemExit. А при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора.
Использовать sys.exit() стоит потому, что этот метод лежит в стандартном модуле и всегда там доступен. Также это довольно явный способ завершения программы.
Подписывайтесь на канал 👉@pythonofff
👍2
Перемешивание
Располагает элементы списка в произвольном порядке. Обратите внимание: shuffle работает в обычном порядке и возвращает None.
Подписывайтесь на канал 👉@pythonofff
Располагает элементы списка в произвольном порядке. Обратите внимание: shuffle работает в обычном порядке и возвращает None.
Подписывайтесь на канал 👉@pythonofff
👍3🤡2
Создаем виртуальное окружение
Виртуальное окружение — это изолированная среда, которая имеет свои локальные интерпретатор и пакеты, независимые от глобального интерпретатора и других окружений.
В стандартной библиотеке Python третьей версии есть пакет venv, который позволяет создавать виртуальные окружения удобно и быстро. Пример представлен на картинке.
Скрипт activate в директории bin предназначен для активации окружения, а команда deactivate в уже активированном окружении — для выхода из него.
В случае успешного создания и активации у вас в терминале должно появится название вашего виртуального окружения в круглых скобках.
Подписывайтесь на канал 👉@pythonofff
Виртуальное окружение — это изолированная среда, которая имеет свои локальные интерпретатор и пакеты, независимые от глобального интерпретатора и других окружений.
В стандартной библиотеке Python третьей версии есть пакет venv, который позволяет создавать виртуальные окружения удобно и быстро. Пример представлен на картинке.
Скрипт activate в директории bin предназначен для активации окружения, а команда deactivate в уже активированном окружении — для выхода из него.
В случае успешного создания и активации у вас в терминале должно появится название вашего виртуального окружения в круглых скобках.
Подписывайтесь на канал 👉@pythonofff
Многоточие в Python
Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python
Подписывайтесь на канал 👉@pythonofff
Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python
Подписывайтесь на канал 👉@pythonofff
👍1
Статические методы
Отличие статических методов от обычных в том, что они привязаны к классу, а не объекту. То есть они могут быть вызваны напрямую у класса.
Статический метод не принимает ни объект (self), ни класс (cls) в аргументах. То есть такие методы не могут модифицировать ни объект, ни сам класс.
Реализовать статический метод можно двумя способами. Один из них — присвоить классу новый метод, напрямую передав изначальный метод в функцию staticmethod.
Но так делать не принято, поэтому чаще всего staticmethod используют в качестве декоратора при написании методов прямо в классе.
Подписывайтесь на канал 👉@pythonofff
Отличие статических методов от обычных в том, что они привязаны к классу, а не объекту. То есть они могут быть вызваны напрямую у класса.
Статический метод не принимает ни объект (self), ни класс (cls) в аргументах. То есть такие методы не могут модифицировать ни объект, ни сам класс.
Реализовать статический метод можно двумя способами. Один из них — присвоить классу новый метод, напрямую передав изначальный метод в функцию staticmethod.
Но так делать не принято, поэтому чаще всего staticmethod используют в качестве декоратора при написании методов прямо в классе.
Подписывайтесь на канал 👉@pythonofff
❤4👍1
Избавляемся от вложенных циклов с помощью функции product
Вложенные циклы — настоящая головная боль. Они усложняют не только сам код, но и его читаемость. Выход из этих циклов — задача тоже сложная. Чтобы найти ошибку, приходится приложить много усилий, ведь нужно проверить каждый внутренний цикл.
К счастью, существует очень полезная встроенная функция — product. Она является частью встроенного модуля Python — itertools. С ее помощью мы можем избавиться от вложенных циклов.
Подписывайтесь на канал 👉@pythonofff
Вложенные циклы — настоящая головная боль. Они усложняют не только сам код, но и его читаемость. Выход из этих циклов — задача тоже сложная. Чтобы найти ошибку, приходится приложить много усилий, ведь нужно проверить каждый внутренний цикл.
К счастью, существует очень полезная встроенная функция — product. Она является частью встроенного модуля Python — itertools. С ее помощью мы можем избавиться от вложенных циклов.
Подписывайтесь на канал 👉@pythonofff
👍6
all or any: все или хоть что-нибудь
Python – удивительно простой и выразительный язык. Его даже иногда называют «выполняемым псевдокодом». И с этим трудно поспорить, когда вы можете себе позволить конструкции
Подписывайтесь на канал 👉@pythonofff
Python – удивительно простой и выразительный язык. Его даже иногда называют «выполняемым псевдокодом». И с этим трудно поспорить, когда вы можете себе позволить конструкции
Подписывайтесь на канал 👉@pythonofff
👍2
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
🤔2
Находим наименьшие и наибольшие
В стандартной библиотеке есть модуль heapq, который, как можно понять по названию, реализует структуру даных куча.
Особенности и пользу этой структуры данных пока что разбирать не будем, но посмотрим на два интересных метода в этом модуле.
С помощью методов nsmallest и nlargest можно получить наименьшие и наибольшие элементы в списке.
Первым аргументов передается, сколько элементов нужно взять, вторым — список.
Подписывайтесь на канал 👉@pythonofff
В стандартной библиотеке есть модуль heapq, который, как можно понять по названию, реализует структуру даных куча.
Особенности и пользу этой структуры данных пока что разбирать не будем, но посмотрим на два интересных метода в этом модуле.
С помощью методов nsmallest и nlargest можно получить наименьшие и наибольшие элементы в списке.
Первым аргументов передается, сколько элементов нужно взять, вторым — список.
Подписывайтесь на канал 👉@pythonofff
👍4