7 практических трюков в Python

Adrian Kalinin
Clean Code
Published in
4 min readApr 8, 2020

--

Нет никаких сомнений, что Python можно назвать языком, испытавшим в последнее десятилетие значительный рост. Языком, который постоянно доказывает свою мощь.

Большинство примеров будут работать только в третьей версии Python.

1. Сортировка словаря по значениям

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

2. Нахождение наиболее частых элементов списка

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

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

3. Объединение списков без цикла

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

Другой, пусть и менее краткий, но более эффективный способ — это применение модуля itertools.

Кстати, при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections и itertools.

4. Удаление дубликатов в списке с сохранением порядка

Среди регулярно используемых трюков в Python — использование множества для удаления повторяющихся элементов в списке.

Но множества — это неупорядоченные последовательности.

Часто необходимо сохранить порядок следования элементов. Для этого можно воспользоваться типом данных collections.OrderedDict, который похож на обычный словарь, но порядок, в котором ему были даны ключи. Итак, сделаем упорядоченный словарь, а дальше просто возьмем его ключи.

5. Объединение строк

Нередко программисту приходится сталкиваться с конкатенацией строк при помощи знака сложения. Создание строки из списка нескольких подстрок удобнее осуществить при помощи строкового метода join.

Вот пример посложнее — конвертирование списка чисел в строку.

Не забывайте, что метод join работает быстрее цикла.

6. Функция zip

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

Вот пример работы с функцией zip.

Вернуть скомбинированные элементы в обычное состояние можно, воспользовавшись оператором *.

7. Функция enumerate

На первый взгляд функция enumerate может показаться сложной, но, если с ней разобраться, оказывается, что она способна пригодиться во многих случаях. Функция enumerate позволяет создавать автоматический счётчик, который часто используется в циклах for.

В таких циклах не нужно создавать и инкрементировать переменную-счётчик, используя конструкции вроде counter = 0 и counter += 1

Функции zip и enumerate – это два мощнейших инструмента, применяемых при конструировании циклов for.

В данном случае переменная count используется как автоматический счетчик.

Веселый бонус в конце

Дочитали статью? Наверняка многие из вас знают про Дзен Python, выводимый интерпретатором по команде import this. В третьей версии Python спрятаны и некоторые другие «пасхалки».

Все эти трюки безусловно полезные и практичные, но без твердой основы имеют мало смысла. Именно поэтому стоит полноценно обучиться на “Python-разработчика” у специалистов из Skillbox.

За время онлайн-обучения вы научитесь:
❶ Создавать модульные программы: от скриптов до чат-ботов
❷ Тестировать написанный код
❸ Работать с базами данных

Успей освоить новую профессию до конца карантина!

--

--