Будь вы старшим инженером AI или студентом первого курса биологии — рано или поздно вы столкнётесь с языком программирования Python. После релиза, в 1991 году, Python быстро стал любимым языком программистов и технологов. Согласно рейтингу Stack Overflow, основанному на проявлении интереса к языкам, в развитых странах, Python быстро набирает популярность.
Python — высокоуровневый, интерпретируемый язык с относительно простым синтаксисом, идеально подойдет даже тем, кто ранее не программировал. Популярные библиотеки Python, хорошо интегрированы и используются в различных областях, например в биоинформатике (biopython), науке о данных (pandas), машинном обучении (keras/tensorflow) и даже в астрономии (astropy). После изучения C и Java, в качестве моих первых языков программирования, на освоение Python мне понадобилось несколько недель, достаточно было погуглить. Код выполняется гораздо медленнее, чем в Java и других языках, тем не менее Python на самом деле повышает продуктивность, благодаря хорошо налаженной интеграции процессов.
Уловка №1: Сила «однострочников» (One-Liners)
Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно. Например, такая конструкция:
До смешного просто! Если уделять больше внимания коду, который вы пишите, всегда найдется место, где можно упростить его однострочником. Кроме условных конструкций, упрощать можно и циклы for. Например, удвоение списка целочисленных, в четырех строках:
можно упростить до одной строки:
doubled = [num * 2 for num in lst]
Конечно, если всюду использовать однострочники, это будет выглядеть неопрятно. Старайтесь не переусердствовать с сокращениями в своём коде, кто-то даже скажет, что широкое применение такого подхода — не канон.
>>> import pprint; pprint.pprint(zip(('Byte', 'KByte', 'MByte', 'GByte', 'TByte'), (1 << 10*i for i in xrange(5))))
Уловка №2: Быстрые действия со строками
Манипуляции со строками порой вызывают сложности, но в Python есть сокращения, которые облегчат вашу жизнь. Чтобы сделать реверс строки, просто добавьте ::-1 в качестве списка индексов.
Такую уловку можно применить и к списку с числами. Манипулировать строками в Python, чрезвычайно просто. Например, вам нужно вывести предложение, используя предопределённые переменные: str1, str2 и lst3
Просто используйте метод .join() и арифметические операторы, чтобы создать нужное предложение.
Кроме действий со строками, рекомендую изучить больше о regex(регулярных выражениях), чтобы эффективно использовать шаблоны фильтров и поиск в стоках.
Уловка №3 Комбинации вложенных списков
Пожалуй, одна из моих любимых библиотек в Python — это itertools.Чтобы преобразить код, содержащий десятки списков, в глубоко вложенный список, достаточно нескольких манипуляций. itertools именно то, что вам нужно, чтобы решить эту задачу.
Из приведенного выше примера видно, как мы можем объединить вложенные списки и строки с помощью .join() и itertools. Метод .combinations()из библиотеки itertools, мощный инструмент, для возврата длины последовательностей элементов, из входных итераций. Нажмите здесь, чтобы узнать больше об itertools.
Уловка №4 Простые структуры данных
Возвращаясь к пункту №1. Однострочником, также очень просто вызвать инициализацию структур данных в Python. Гарольд Купер, реализовал однострочную древовидную структуру, используя следующий код:
>>> def tree(): return defaultdict(tree)
Приведенный выше код просто определяет древо, которое является словарём, со значением по умолчанию tree. Другие однострочные функции, как например генератор простых чисел:
>>> reduce( (lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r),
range(2,N), set(range(2,N)))
можно найти на Github и Stack Overflow. Также в Python есть мощная библиотека Collections, которая поможет решить множество насущных проблем, без написания длинного кода.
Уловка №5 Упрощенный вывод данных
Хотел бы я узнать раньше об этом трюке. Он позволяет вывести строчный массив одной строкой, с разделением запятыми. Нам не нужно использовать .join() и циклы.
Можно использовать однострочник:
Еще один элегантный способ вывода, использовать enumerate . Эта встроенная в Python функция невероятно полезна. Так, вместо четырёх строк кода:
тоже самое, можно записать двумя:
for c, item in enumerate(iterable):
print c, item
В Python, есть еще сотни тысяч подобных уловок, например pprint для форматирования кода.
Читайте нас в телеграмме и vk
Перевод статьи: Enoch Kan: Five Python Tricks You Need to Know Today