@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
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
@Animkim
Питон вокруг меня
Дело просто в самой структуре данных типа list.
Если удаляем элемент слева, то всё что справа надо подвинуть, время удаления зависит от длины списка.
Если удаляем элемент справа, то это всегда будет занимать одинаковое количество времени.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы