Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Отображение списка

Чтобы «отобразить» один список на другой можно использовать функцию map(). Это определенно короче, но всё еще выглядит довольно беспорядочно. Более красивый путь это генератор списка, этот код делает абсолютно то же самое, но он короче, чем первый пример, и понятней, чем второй.

#theory // just python
Функция reduce

Функция reduce работает так же как map, но reduce возвращает лишь одно значение которое получается из последнего выполнения переданной функции. Перед использованием reduce, его необходимо импортировать из модуля functools.

Функция reduce получает на вход:
* Функцию, которая получает более одно значения
* Массив, элементы которого будут поданы на вход функции

Reduce предает на вход функции элемент массива и выход предыдущего выполнения, при первом выполнении в функцию передаются первые элементы массива.

#theory // just python
Функции any и all

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

Они оба принимают массив из условий или булевых значений как аргумент, и возвращают одно булево значение.
Any - заменяет собой оператор OR, если в аргументах есть хотя бы одно True, на выходе будет True.
All - заменяет собой оператор AND, если в аргументах будет хотя бы один False, ответ будет False.

Для примера возьмем программу, которая должна вывести "1", если есть одинаковые переменные, и "-1", если таковых нет. Потом она должна проверить равна ли первая переменная второй и вторая третей, если это так вывести "2".

#theory // just python
Срезы для строк в Python

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

#theory // just python
Выбор случайного элемента из последовательности элементов

Пакет random, входящий в состав стандартной библиотеки, включает в себя множество полезных функций. Среди них хочется особо отметить функцию random.choice(seq). Она позволяет выбрать случайный элемент из индексируемой последовательности. Речь идёт о списках, о кортежах, и даже о строках.

Если попытаться передать функции random.choice(seq) неиндексируемую последовательность, например — словарь, множество или значение числового типа — возникнет ошибка. Ошибка будет выдана и при попытке передачи этой функции пустой последовательности.

#theory // just python
Использование set для оптимизации различных операций

В соответствии с документаций по Python, класс set([iterable]) возвращает новый объект set (множество), созданный на основе итерируемого объекта.

Как вы, возможно, знаете, множество — это неупорядоченная структура данных (а значит — и неиндексируемая), одной из особенностей которой является тот факт, что в ней нельзя хранить одинаковые элементы.

#theory // just python
Просмотр атрибутов и методов класса в интерпретаторе Python

Функция dir() возвращает список атрибутов и методов класса. Эту полезную возможность можно использовать для того чтобы получать подобные списки для различных классов при работе в интерпретаторе.

Очень полезная вещь когда используется чужой код без документации, ведь передав в dir тот или иной объект, можно получить список методов для взаимодействия с ним.

#theory // just python
Проверка строки на палиндром

Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.

#theory // just python
Распечатывание ежемесячного календаря

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

#theory // just python
Превращение списка в одну строку

Если у вас есть список строк и вы хотите объединить все элементы в одну строку, то для этого наверняка будете перебирать каждый элемент в списке и присоединять к нему следующий.
Но есть более быстрый и эффективный способ выполнения той же задачи с помощью одной строки кода, благодаря методу join().

#theory // just python
Перемешать элементы списка с помощью shuffle

Этот сниппет поможет вам изменить порядок элементов списка на случайный. Обратите внимание на то, что функция shuffle из библиотеки random меняет исходный список.

#theory // just python
Необязательные аргументы

Можно передавать необязательные аргументы через присвоение стандартного значения аргументу.

#theory // just python
Распаковка элементов массива

Распаковка (unpacking, также называемая Деструктуризация) представляет разложение коллекции (кортежа, списка и т.д.) на отдельные значения. Так, как и многие языки программирования, Python поддерживает концепцию множественного присваивания.

#theory // just python
Итерация next() для генераторов

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

Однако вместо этого можно использовать next(). Next берёт итератор, который будет хранить текущую позицию в памяти и перебирать список в фоновом режиме.

#theory // just python
Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip.

#theory // just python
Группировка смежных списков

Группировку смежных списков, разумеется, легко осуществить в цикле for, особенно, используя zip(), но это далеко не самый лучший способ. Чтобы сделать это проще и быстрее, напишем лямбда-выражение с zip, которое сгруппирует смежные списки.

#theory // just python
Эмодзи

Модуль emoji позволяет добавлять в строки эмодзи.

#modules // just python
Модуль geopy

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

#modules // just python
Инструмент командной строки howdoi

Задайте любой вопрос, и он постарается найти ответ на него. Но будьте осторожны: он извлекает код из топовых ответов на StackOverflow и не всегда даёт полезную информацию.

#tools // just python
Библиотека Jedi

Библиотека предназначена для автодополнения и анализа кода. Она ускоряет процесс написания кода и делает его более продуктивным.
**kwargs
Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы. Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs.
Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.

#modules // just python
Перегрузка операторов

Возможно определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете.

#theory // just python