Найти тему
Nuances of programming

Python. Пять уловок, которые нужно знать, уже сегодня

Оглавление

Будь вы старшим инженером AI или студентом первого курса биологии — рано или поздно вы столкнётесь с языком программирования Python. После релиза, в 1991 году, Python быстро стал любимым языком программистов и технологов. Согласно рейтингу Stack Overflow, основанному на проявлении интереса к языкам, в развитых странах, Python быстро набирает популярность.

-2

Python — высокоуровневый, интерпретируемый язык с относительно простым синтаксисом, идеально подойдет даже тем, кто ранее не программировал. Популярные библиотеки Python, хорошо интегрированы и используются в различных областях, например в биоинформатике (biopython), науке о данных (pandas), машинном обучении (keras/tensorflow) и даже в астрономии (astropy). После изучения C и Java, в качестве моих первых языков программирования, на освоение Python мне понадобилось несколько недель, достаточно было погуглить. Код выполняется гораздо медленнее, чем в Java и других языках, тем не менее Python на самом деле повышает продуктивность, благодаря хорошо налаженной интеграции процессов.

Уловка №1: Сила «однострочников» (One-Liners)

-3

Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно. Например, такая конструкция:

-4

До смешного просто! Если уделять больше внимания коду, который вы пишите, всегда найдется место, где можно упростить его однострочником. Кроме условных конструкций, упрощать можно и циклы for. Например, удвоение списка целочисленных, в четырех строках:

-5

можно упростить до одной строки:

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: Быстрые действия со строками

-6

Манипуляции со строками порой вызывают сложности, но в Python есть сокращения, которые облегчат вашу жизнь. Чтобы сделать реверс строки, просто добавьте ::-1 в качестве списка индексов.

-7

Такую уловку можно применить и к списку с числами. Манипулировать строками в Python, чрезвычайно просто. Например, вам нужно вывести предложение, используя предопределённые переменные: str1, str2 и lst3

-8

Просто используйте метод .join() и арифметические операторы, чтобы создать нужное предложение.

-9

Кроме действий со строками, рекомендую изучить больше о regex(регулярных выражениях), чтобы эффективно использовать шаблоны фильтров и поиск в стоках.

Уловка №3 Комбинации вложенных списков

-10

Пожалуй, одна из моих любимых библиотек в Python — это itertools.Чтобы преобразить код, содержащий десятки списков, в глубоко вложенный список, достаточно нескольких манипуляций. itertools именно то, что вам нужно, чтобы решить эту задачу.

-11

Из приведенного выше примера видно, как мы можем объединить вложенные списки и строки с помощью .join() и itertools. Метод .combinations()из библиотеки itertools, мощный инструмент, для возврата длины последовательностей элементов, из входных итераций. Нажмите здесь, чтобы узнать больше об itertools.

Уловка №4 Простые структуры данных

-12

Возвращаясь к пункту №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, которая поможет решить множество насущных проблем, без написания длинного кода.

-13

Уловка №5 Упрощенный вывод данных

-14

Хотел бы я узнать раньше об этом трюке. Он позволяет вывести строчный массив одной строкой, с разделением запятыми. Нам не нужно использовать .join() и циклы.

-15

Можно использовать однострочник:

-16

Еще один элегантный способ вывода, использовать enumerate . Эта встроенная в Python функция невероятно полезна. Так, вместо четырёх строк кода:

-17

тоже самое, можно записать двумя:

for c, item in enumerate(iterable):
print c, item

В Python, есть еще сотни тысяч подобных уловок, например pprint для форматирования кода.

Читайте нас в телеграмме и vk

Перевод статьи: Enoch KanFive Python Tricks You Need to Know Today