Начинающий Python

5 функций Python, о которых я хотел бы знать раньше

Уловки Python, выходящие за рамки лямбда, карты и фильтра

Python, возможно, является растущим языком программирования десятилетия и оказался очень мощным языком. Я создал очень много приложений с использованием Python, от интерактивных карт до блокчейнов. В Python так много функций, что новичкам очень сложно сначала все понять.

Даже если вы программист, переключающийся с других языков, таких как C или MATLAB, кодирование на Python с более высоким уровнем абстракции - это определенно другой опыт. Мне жаль, что я раньше не знал некоторых функций Python, и выделил пять наиболее важных из них.

1. Составьте список - компактные коды

Многие люди упомянули бы лямбда, карту и фильтр как «уловки» Python, которые должен изучить каждый новичок. Хотя я считаю, что это функции, о которых нам следует знать, в большинстве случаев я считаю их не особенно полезными, поскольку им не хватает гибкости.

Lambda - это способ составить функцию в одну строку для одноразового использования. Производительность страдает, если функции вызываются несколько раз. С другой стороны, map применяет функцию ко всем элементам в списке, тогда как filter получает подмножество элементов в наборе, которое удовлетворяет определенному пользователем условию.

Понимание списков - это краткий и гибкий метод создания списков из других списков с гибкими выражениями и условиями. Он состоит из квадратных скобок с выражением или функцией, которые применяются к каждому элементу в списке, только если элемент удовлетворяет определенному условию. Он также может быть вложенным для обработки вложенных списков и является гораздо более гибким, чем использование карты и фильтра.

# Syntax of list comprehension
[ expression(x) for x in aList if optional_condition(x) ]

2. Управление списками - круговые списки

Python допускает отрицательную индексацию, где aList[-1] == aList[len(aList)-1]. Следовательно, мы можем получить второй последний элемент в списке, вызвав aList[-2] и так далее.

Мы также можем разрезать списки, используя синтаксис aList[start:end:step], где начальный элемент включен, а конечный - нет. Следовательно, вызов aList[2:5] дает [2, 3, 4]. Мы также можем перевернуть список, просто вызвав aList[::-1], и я считаю этот метод очень элегантным.

Список также можно распаковать на отдельные элементы или сочетание элементов и подсписка с помощью звездочки.

3. Архивирование и перечисление - циклы for

Zip создает итератор, который объединяет элементы из нескольких списков. Он позволяет просматривать списки параллельно в цикле for и выполнять параллельную сортировку. Его можно разархивировать с помощью звездочки.

Enumerate может сначала показаться немного устрашающим, но становится очень удобным во многих сценариях. Это автоматический счетчик, который часто используется в цикле for, поэтому больше нет необходимости создавать и инициализировать переменную счетчика в цикле for counter = 0 и counter += 1. Enumerate и zip - два самых мощных инструмента при создании цикла for.

4. Генератор - эффективность памяти

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

Они часто используются при чтении больших файлов или создании бесконечной последовательности с использованием ключевого слова yield. Я часто нахожу это полезным в большинстве моих проектов в области науки о данных.

5. Виртуальная среда - изоляция

Если бы вы могли вспомнить только одну вещь из этой статьи, то это должно быть использование виртуальных сред.

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

conda create -n venv pip python=3.7  # select python version
source activate venv
...
source deactivate

Следовательно, жизненно важно создавать отдельные автономные виртуальные среды venv для каждого приложения, что можно сделать с помощью pip или conda.

Статьи по Теме

Спасибо за чтение. Вы можете подписаться на мою рассылку, чтобы получать новости о моих новых статьях. Если вас интересует наука о данных, вам могут быть полезны следующие статьи:







Первоначально опубликовано на edenau.github.io.