Simple Python
78 subscribers
45 photos
1 file
10 links
Download Telegram
Нахождение наиболее частых элементов списка

Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.

Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.

🐍 @SimplePython #collections #counter
Создание словаря из набора ключей

Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions).

Однако класс dict имеет удобный метод fromkeys, который был создан специально для таких случаев.

🐍 @SimplePython #dict
Функция zip

Функция zip создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for или, например, выполнять параллельную сортировку.

🐍 @SimplePython #функции #zip
Превращаем PDF в текст

Думаю, все периодически работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.

Модуль pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше.

Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.

🐍 @SimplePython #pdf #pdftotext
Ищем опечатки

Пакет spellchecker позволяет отыскать ошибки в тексте, а также может предложить варианты исправлений. В примере проходимся по списку из двух слов, из которых одно ('therre') написано с опечаткой. Функция correction замечает это и предлагает одно самое вероятное исправление, а candidates — несколько.

Пакет поддерживает шесть языков.

🐍 @SimplePython #spellchecker
Символы Юникода

Добавлять юникод-символы в строковые литералы можно не только с помощью их номеров, но и по их названиям.

Более того, такая запись символов юникода совместима и с f-строками, а это очень удобно.

🐍 @SimplePython #strings #unicode
Получаем и задаем лимит рекурсии

В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.

Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.

И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.

🐍 @SimplePython #recursion #limits
Метод items()

Метод Dictionary items() возвращает итератор типа dict_items. Вы можете перебирать каждый ключ:значение в словаре. Также тип dict_items поддерживает динамическое обновление словаря.

🐍 @SimplePython #items #dict
😂
😁1
Библиотека Progressbar

Да, да, эта библиотека делает именно то, о чём вы подумали — выводит прогрессбар.

🐍 @SimplePython #progressbar
👍2🔥1
3D визуализация на Python

Vpython — относительно простая библиотека для демонстрации физических явлений. В примере создаём вращающийся куб.

В начале программы создаём сам куб, задавая параметры, сохраняем его в переменную, а затем для вращения создаём бесконечный цикл. Документация:
https://www.glowscript.org/docs/VPythonDocs/index.html

🐍 @SimplePython #vpython #3d
🔥2👍1
Метод str.endswith()

Метод str.endswith() возвращает True, если строка str заканчивается указанным суффиксом suffix, в противном случае возвращает False.

Параметры:
suffix - объект поддерживающий итерацию (кортеж, символ или подстрока).
start - int, индекс начала поиска, по умолчанию 0, необязательно.
end - int, индекс конца поиска, по умолчанию len(str), необязательно.

🐍 @SimplePython #str #endswith
Изменение размера изображения

Чтобы изменить размер изображения с помощью Pillow, вы можете использовать метод resize() класса PIL.Image.Image.

В следующем примере мы прочитаем изображение и изменим его размер до (200, 200).

🐍 @SimplePython #PIL #image
pass

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

🐍 @SimplePython #pass
Сборка словаря

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

🐍 @SimplePython #list #dict
👍1
Разница между двумя массивами

Выше представлена функция, которая возвращает разницу между двумя массивами. Создает set из b и сохраняет только те значения, которые не содержатся в b.

🐍 @SimplePython #dict #differ
👍1
Метод Counter.most_common()

Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.

Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.

🐍 @SimplePython #Counter #most_common
👍2
Проверка четности или нечетности числа без использования оператора %

Хотя этот трюк не намного лучше, чем использование оператора %, но иногда он эффективен (с большими числами).

Рассмотрим пару примеров:
k = 3
Двоичный: «11 & 1» будет 001, поэтому число нечетное
k = 4
Двоичный: «100 & 1» будет 000, поэтому число четное.

🐍 @SimplePython #odd
👍1
Метод count()

Метод count() возвращает количество раз, когда указанный элемент появляется в последовательности.

🐍 @SimplePython #count
Конвертируем из JPG в PNG с помощью Pillow

Для конвертации нам понадобится открыть изображение и просто сохранить его в другом формате.

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

🐍 @SimplePython #Pillow #convert