Categories: Python

5 способов как ускорить код на Python

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

Представляю вашему вниманию 5 простых советов как ускорить код на Python – это сравнительные примеры с отображением времени.

Часто встроенные функции могут заменить циклы и ускорить выполнение кода. Например, для преобразования каждого элемента списка в заглавную букву можно использовать функцию map() и метод capitalize():

# медленный способ
start = time.time()
new_list = []
for word in word_list:
    new_list.append(word.capitalize())
print(time.time() - start, "секунд")

>>>> 4.935264587402344e секунды

# быстрый способ
start = time.time()
word_list = ['Ways', 'to', 'Make', 'Your', 'Python', 'Code', 'Faster']
new_list = list(map(str.capitalize, word_list))
print(time.time() - start, "секунд")

>>>> 0.00029468536376953125 ceкунды

2. Используйте метод join() вместо конкатенации строк

Конкатенация строк через += может быть медленной, особенно при больших объемах данных. Вместо этого используйте метод join():

# медленный способ
start = time.time()
new_list = []
for word in word_list:
    new_list += word
print(time.time() - start, "секунд")
>>>>> 5.7220458984375e-05 секунд 

# быстрый способ
start = time.time()
word_list = ['Ways', 'to', 'Make', 'Your', 'Python', 'Code', 'Faster']
new_list = "".join(word_list)
print(time.time() - start, "секунд")
>>>>> 0.0001430511474609375 секунд

3. Создавайте списки и словари быстрее

Использование функций list() и dict() для создания новых списков и словарей может быть медленным. Вместо этого используйте квадратные скобки и фигурные скобки:

# медленный способ
slower_list = timeit.timeit("list()", number=10**6)
slower_dict = timeit.timeit("dict()", number=10**6)

# быстрый способ
faster_list = timeit.timeit("[]", number=10**6)
faster_dict = timeit.timeit("{}", number=10**6)

>>>>> slower_list: 0.03651356499995018 sec 
>>>>> slower_dict: 0.047055111999952715 sec 
>>>>> faster_list: 0.010666104999927484 sec 
>>>>> faster_dict: 0.010838708999926894 sec 

4. Используйте f-строки вместо конкатенации строк

Использование оператора + для конкатенации строк может быть медленным. Вместо этого используйте f-строки:

# медленный способ
start = time.time()
me = "Python"
string = "Make " + me + " faster"
print(time.time() - start, "секунд")
>>>>> 0.06872344017028809 секунд 

# быстрый способ
start = time.time()
me = "Python"
string = f"Make {me} faster"
print(time.time() - start, "секунд")
>>>> 0.04211759567260742 секунд

5. Используйте генераторы списков вместо циклов

List comprehension – это компактный и быстрый способ создания списка в Python. Он состоит из квадратных скобок, содержащих выражение, за которым следует цикл for, который перебирает элементы, которые будут включены в список.

#slow 
start = time.time() 
new_list = [] 
existing_list = range(1000000) for i in existing_list: 
    if i % 2 == 1: 
        new_list.append(i) 
         
print(time.time() - start, "секунд") 
>>>>> 0.06872344017028809 seconds 


#fast 
start = time.time() 
 
existing_list = range(1000000) 
new_list = [i for i in existing_list if i % 2 == 1] 
 
print(time.time() - start, "seconds") 
>>>>> 0.04211759567260742 seconds 

Recent Posts

  • Excel

Как правильно открыть CSV с многострочными ячейками в Excel

Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More

% дней назад
  • Python

Загрузка проекта на Github и Автодеплой на сервер

Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More

% дней назад
  • Python
  • Полезная минутка

Миграция базы данных в проектах Python

Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More

% дней назад
  • Python

Команды Git – Шпаргалка по основным командам Git

Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More

% дней назад
  • Python

Установка PostgreSQL на сервер Ubuntu и подключение через pgAdmin

Установка PostgreSQL на сервер Read More

% дней назад
  • Полезная минутка

Как создать PrimaryKey для таблицы в PostgreSQL

Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More

% дней назад