Советы по программированию

10 лучших и полезных советов по ускорению написания кода Python

10 лучших и полезных советов по ускорению написания кода Python

Если вас спросят: «Какой язык программирования сейчас самый быстрорастущий в мире??"Ответ будет простым. Его питон. Мировая популярность обусловлена ​​простым синтаксисом и богатыми библиотеками. В настоящее время с Python можно делать практически все: науку о данных, машинное обучение, обработку сигналов, визуализацию данных - что угодно. Однако многие люди утверждают, что python немного медлителен при решении серьезных проблем. Но время выполнения программы зависит от кода, который она пишет. С помощью некоторых советов и приемов можно ускорить код Python и повысить производительность программы.

Советы и приемы для ускорения кода Python


Если вы ищете способы ускорить код Python, эта статья для вас. Он иллюстрирует методы и стратегии сокращения времени выполнения программы. Советы не только ускорят код, но и улучшат навыки работы с Python.

01. Используйте встроенные библиотеки и функции


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

# code1 newlist = [] для слова в oldlist: newlist.добавить (слово.верхний ())
# code2 newlist = map (str.верхний, старый список)

Здесь второй код быстрее, чем первый, потому что использовалась библиотечная функция map (). Эти функции удобны для новичков. Кто не хочет писать более быстрый, чистый и компактный код? Поэтому максимально используйте библиотечные функции и модули.

02. Правильная структура данных в нужном месте


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

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

03. Трy, чтобы свести к минимуму использование для Петля


Довольно сложно избежать использования для петля. Но всякий раз, когда у вас появляется шанс предотвратить это, эксперты говорят, что вы это делаете. Цикл For является динамическим в Python. Его время выполнения - это больше, чем цикл while. Вложенный цикл for занимает гораздо больше времени. Два вложенных цикла for будут занимать квадрат времени в одном цикле for.

# code1 для i в big_it: m = re.search (r '\ d 2 - \ d 2 - \ d 4', i), если m:… 
# code2 date_regex = re.скомпилировать (r '\ d 2 - \ d 2 - \ d 4') для i в big_it: m = date_regex.search (i) если m:… 

В этом случае лучше использовать подходящую замену. Более того, если для петли неизбежны, переместите расчет за пределы цикла. Это сэкономит много времени. Мы можем увидеть это в примере, приведенном выше. Здесь 2-й код быстрее, чем 1-й код, так как расчет выполнялся вне цикла.

04. Избегайте глобальных переменных


Глобальные переменные используются в Python во многих случаях. Глобальное ключевое слово используется для его объявления. Но время выполнения этих переменных больше, чем время выполнения локальной переменной. Использование меньшего количества из них спасает от ненужного использования памяти. Кроме того, Python подбирает локальную переменную быстрее, чем глобальную. При навигации по внешним переменным Python действительно медлителен.

Некоторые другие языки программирования выступают против незапланированного использования глобальных переменных. Счетчик вызван побочными эффектами, приводящими к увеличению времени выполнения. Итак, по возможности старайтесь использовать локальную переменную вместо глобальной. Более того, вы можете сделать локальную копию, прежде чем использовать ее в цикле, что сэкономит время.

05. Увеличение использования понимания списков


Понимание списков предлагает более короткий синтаксис. Это небольшая проблема, когда новый список создается на основе существующего списка. Цикл необходим в любом коде. Иногда синтаксис внутри цикла становится большим. В этом случае можно использовать понимание списка. Мы можем взять пример, чтобы понять это более точно.

# code1 square_numbers = [] для n в диапазоне (0,20): if n% 2 == 1: square_numbers.добавить (n ** 2)
# code2 square_numbers = [n ** 2 для n в диапазоне (1,20), если n% 2 == 1]

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

06. Замените range () на xrange ()


Вопрос о range () и xrange () возникает, если вы используете python 2. Эти функции используются для итерации чего-либо в цикле for. В случае range () он сохраняет все числа в диапазоне в памяти. Но xrange () сохраняет только диапазон чисел, которые необходимо отобразить.

Тип возвращаемого значения range () - это список, а тип возвращаемого значения - xrange () - объект. В конце концов, xrange () занимает меньше памяти и, как следствие, меньше времени. Итак, по возможности используйте xrange () вместо range (). Конечно, это применимо только к пользователям Python 2.

07. Использовать генераторы


В Python генератор - это функция, которая возвращает итератор при вызове ключевого слова yield. Генераторы - отличный оптимизатор памяти. Они возвращают по одному элементу за раз, а не возвращают все за раз. Если ваш список включает значительное количество данных, и вам нужно использовать данные по одному, используйте генераторы.

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

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

08. Объединение строк с помощью соединения


Конкатенация довольно распространена при работе со строками. Как правило, в python мы объединяем, используя '+'. Однако на каждом шаге операция «+» создает новую строку и копирует старый материал. Этот процесс неэффективен и занимает много времени. Мы должны использовать join () для объединения строк здесь, если мы хотим ускорить наш код Python.

# code1 x = "I" + "am" + "a" + "python" + "geek" print (x)
# code2 x = "".join ([«я», «я», «а», «питон», «компьютерщик»]) print (x)

Если мы посмотрим на пример, первый код печатает «Iamapythongeek», а второй код печатает «Я компьютерщик-питон».  Операция join () эффективнее и быстрее, чем '+'. Он также сохраняет код в чистоте. Кому не нужен более быстрый и чистый код? Итак, попробуйте использовать join () вместо '+' для объединения строк.

09. Профилируйте свой код


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

Таймер - один из профилировщиков. Вы можете использовать его в любом месте кода и узнать время выполнения каждого этапа. Тогда мы сможем улучшить программу там, где она занимает слишком много времени. Кроме того, есть встроенный модуль профилировщика под названием LineProfiler. Он также дает подробный отчет о затраченном времени. Есть несколько профилировщиков, которые вы можете изучить, прочитав книги о Python.

10. Держите себя в курсе - используйте последнюю версию Python


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

Итак, нам нужно обновить библиотеки до последней версии. Python 3.9 сейчас последняя версия. Многие библиотеки python 2 могут не работать на python3. Помните об этом и всегда используйте последнюю версию, чтобы получить максимальную производительность.

Наконец, Insights


Ценность разработчиков Python в мире растет день ото дня. И так, чего же ты ждешь! Пора вам начать учиться ускорять код Python. Приведенные нами советы и рекомендации обязательно помогут вам писать эффективные коды. Если вы последуете им, мы можем надеяться, что вы сможете улучшить свой код и перейти к более продвинутым материалам Python.

Мы постарались показать все основные приемы и советы, которые необходимы для ускорения кода. Надеемся, статья ответила на большинство ваших вопросов. Теперь все остальное на тебе. Однако нет конца знаниям и нет конца обучению. Итак, если мы пропустили что-то важное, дайте нам знать. Удачного обучения!

Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...