Python - один из самых популярных языков программирования среди разработчиков. Он используется везде, будь то веб-разработка или машинное обучение.

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

Несмотря на все эти качества, у python есть один недостаток - его медленная скорость. Будучи интерпретируемым языком, Python работает медленнее, чем другие языки программирования. Тем не менее, мы можем решить эту проблему, воспользовавшись некоторыми советами.

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

1. Правильный алгоритм и структура данных

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

В python наборы и словари имеют производительность поиска O (1), поскольку для этого используются хеш-таблицы. Вы можете использовать наборы и словари вместо списков в следующих случаях:

  • У вас нет повторяющихся предметов в коллекции.
  • Вам необходимо многократно искать предметы в коллекции.
  • Коллекция содержит большое количество предметов.

Вы можете увидеть временную сложность различных структур данных в Python здесь:

Сложность времени через Python Wiki
На этой странице документируется сложность времени (также известная как Big O или Big Oh) различных операций в текущем CPython…

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

Встроенные функции Python - один из лучших способов ускорить ваш код. При необходимости вы должны использовать встроенные функции Python. Эти встроенные функции хорошо протестированы и оптимизированы.

Причина, по которой эти встроенные функции работают быстро, заключается в том, что встроенные функции Python, такие как min, max, all, map и т. Д., Реализованы на языке C.

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

Пример:

newlist = []
for word in wordlist:
    newlist.append(word.upper())

Лучший способ написать этот код:

newlist = map(str.upper, wordlist)

Здесь мы используем встроенную функцию map, написанную на C. Следовательно, это намного быстрее, чем использование цикла.

3. Используйте несколько назначений.

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

Пример:

firstName = "Qusai"
lastName = "Onali"
city = "Toronto"

Лучший способ присвоить эти переменные:

firstName, lastName, city = "Qusai", "Onali", "Toronto"

Это назначение переменных намного чище и элегантнее, чем приведенное выше.

4. Предпочитайте понимание списка циклам

Понимание списков - это элегантный и лучший способ создать новый список на основе элементов существующего списка всего в одной строке кода.

Понимание списка считается более питоновским способом создания нового списка, чем определение пустого списка и добавление элементов в этот пустой список.

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

Пример:

Используя метод добавления списка:

newlist = []
for i in range(1, 100):
    if i % 2 == 0:
        newlist.append(i**2)

Лучший способ использовать понимание списка:

newlist = [i**2 for i in range(1, 100) if i%2==0]

Код выглядит чище при использовании списков.

5. Правильный импорт

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

Импорт ненужных библиотек приведет к снижению производительности вашего кода.

Пример:

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

import math
value = math.sqrt(50)

Использовать это:

from math import sqrt
value = sqrt(50)

6. Конкатенация строк

В Python мы объединяем строки с помощью оператора «+». Но другой способ объединить строки в Python - использовать метод join.

Метод соединения - это более питонический способ объединения строк, а также он быстрее, чем объединение строк с помощью оператора «+».

Причина, по которой метод join () работает быстрее, заключается в том, что оператор ‘+’ создает новую строку, а затем копирует старую строку на каждом шаге, тогда как метод join () так не работает.

Пример:

output = "Programming" + "is" + "fun

Используя метод соединения:

output = " ".join(["Programming" , "is", "fun"])

Результат обоих методов будет одинаковым. Единственная разница в том, что метод join () работает быстрее, чем оператор «+».

Вывод

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

Надеюсь, вам понравилась эта статья. Спасибо за чтение!