7 практических трюков в Python
Нет никаких сомнений, что 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.
За время онлайн-обучения вы научитесь:
❶ Создавать модульные программы: от скриптов до чат-ботов
❷ Тестировать написанный код
❸ Работать с базами данных