@vldanch

Почему вторая функция быстрее чем первая?

Объясните не могу понять, почему вторая функция быстрее чем первая?
Причем если запускать каждый раз скрипт, то значения у выполнения данных функций разные, почему так?
#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import time
def func1(cnt):
  lst = list()
  for x in xrange(0, cnt):
    lst.append(x)
  for _ in lst:
    lst.pop(0)

def func2(cnt):
  lst = list()
  for x in xrange(0, cnt):
    lst.append(x)
  for _ in lst:
    lst.pop()

if __name__ == '__main__':
  # Какая функция быстрее или они одинаковы по времени ? 
  num = 10**5
  t = time.time()
  func1(num)
  print time.time() - t
  
  t1 = time.time()
  func2(num)
  print time.time() - t1
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
@Animkim
Питон вокруг меня
Дело просто в самой структуре данных типа list.
Если удаляем элемент слева, то всё что справа надо подвинуть, время удаления зависит от длины списка.
Если удаляем элемент справа, то это всегда будет занимать одинаковое количество времени.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 140 000 до 180 000 руб.
Битворкс Томск
от 120 000 руб.
YLab Тольятти
от 90 000 до 150 000 руб.
16 янв. 2019, в 10:30
5000 руб./за проект
16 янв. 2019, в 10:29
1000 руб./за проект
16 янв. 2019, в 09:06
500 руб./в час