Ещё 10 фишек Python, которые поднимут ваш скилл на новый уровень
Рассказываем о 10 функциях в Python, использование которых прокачает ваш скилл программирования и уровень вашего кода.
11К открытий14К показов
Фишек в Python никогда не бывает много. Чем больше таких вы освоите, тем выше шанс на практике оперативно справиться с каким-нибудь очередным затыком. Да и на техническом собеседовании покажете себя с лучшей стороны. В статье Елена Капаца – Data Analyst компании Инфостарт – рассказывает, какие еще трюки круто помогают новичку (и не только) прокачаться.
С первой статьей цикла вы можете познакомиться по ссылке.
1. Форматирование многострочного вывода
Если вы хотите, чтобы вывод напоминал табличку с одинаковым отступом, то при использовании F-строк добавьте интерполируемой переменной двоеточие и число, одинаковое для всех print(), например, 10. Это «резервирует» пространство из 10 символов:
Вывод будет приятным и опрятным:
2. Частичное совпадение пользовательского ввода
Эта замечательная фича позволяет справляться с ситуациями, когда пользователь вводит не все, что от него ожидается. Фишка работает в версиях Python не ниже 3.10:
3. Выборка простых чисел в списке любого размера
Выбирать простые числа приходилось мне на практике разве что во время учёбы, так что найти этому коду реальное применение непросто. Однако его легко переиначить для поиска любых других типов чисел – чётных / нечётных / делимых на определенное число:
4. Словарное включение
Многим из нас знакомо списковое включение (List Comprehension), которое позволяет за одну строку кода сгенерировать список:
Оказывается, Python поддерживает аналогичный функционал для словарей! Код ниже генерирует словарь, где у каждого имени определяется длина в символах:
5. Резервирование символов
С помощью операторов > / < / ^
вы можете добавлять выходному значению символы, к примеру, облегчающие поиск среди других выходных значений:
Как видно в сниппете выше, <
добавит символы после, >
– до, а ^ – окружит с двух сторон.
6. Splat-оператор
Splat (одна звездочка) расширяет коллекцию до позиционных аргументов, а splatty-splat (две звездочки) — словарь до именованных аргументов:
Этот код:
Равнозначен этому:
7. Фильтрация списка без цикла
Здесь неожиданно выделился модуль itertools. Если у нас есть два списка с именами и идентификаторами:
То вы можете выбрать из списка leaders только те, где значения selector равны единице:
8. Подсчёт числа элементов в списке
Помимо способности collections.Counter()
понимать, что именно в строке нужно подсчитать:
В случае со списком слов модуль автоматически рассчитывает, как часто встречается то или иное слово:
9. Поиск отличий в списках
Допустим, у нас есть две длинные строки, и мы хотим найти отличия. seq1
и seq2
в сниппете ниже – это последовательности генов:
Можно использовать комбинацию zip()
и enumerate()
. Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (всего 24). Чтобы найти отличающиеся символы, достаточно сравнить символы попарно в цикле for
:
10. Перегонка кортежа в словарь
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов:
Если «навесить» функцию dict()
, то в результате мы получим словарь с разделенными на ключ – значение парами:
Заключение
Лаконичный неочевидный код, в одну строку делающий то, что у новичка бы заняло пять, сродни задачам по комбинаторике в школе, – понятно не всем и не сразу. Так что не злитесь на себя, если такое забывается. Просто сохраняйте в закладки. И джуны, и сеньоры – все мы гуглим такое.
Дайте знать в комментариях, интересно ли вам получить регулярное продолжение этой рубрики.
11К открытий14К показов