열기 파이썬 단말기 (예를 들어jupyer)이 시도 : 보시다시피
>>>: %%timeit
...: l = [i for i in range(10000000)]
...: del l[0] # O(?)
322 ms ± 1.68 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>: %%timeit
...: l = list(range(10000000))
...: del l[0] # O(?)
195 ms ± 1.42 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>: %%timeit
...: l = [i for i in range(10000000)]
...: del l[-1] # O(?)
306 ms ± 2.64 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>>: %%timeit
...: l = list(range(10000000))
...: del l[-1] # O(?)
267 ms ± 2.68 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
>>>: %%timeit
...: l = [i for i in range(10000000)]
...: l.append(500) # O(1)
299 ms ± 3.28 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
%%timeit
...: l = list(range(10000000))
...: l.append(500) # O(1)
265 ms ± 1.87 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
>>>: %%timeit
...: l = [i for i in range(10000000)]
...: max(l) # O(n)
463 ms ± 15.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>: %%timeit
...: l = list(range(10000000))
...: max(l) # O(n)
335 ms ± 10.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>: from collections import deque # lets compare with deque
>>>: %%timeit
...: l = deque(range(10000000))
...: max(l) # O(n)
365 ms ± 1.83 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
>>>: %%timeit
...: l = deque(range(10000000))
...: l.append(500) #O(1)
283 ms ± 5.19 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
>>>: %%timeit
...: l = deque(range(10000000))
...: del l[0]
279 ms ± 2.78 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
>>>: %%timeit
...: l = deque(range(10000000))
...: del l[9999999]
286 ms ± 3.87 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
가하는 양단에서 인덱스 항목을 제거하는 O의 복잡성이있다 (1), 인덱스 목록에서 제거하는 동안 것은 비교 sligthly 더 넓은하지만 매우 일정한 여전히 최대 계산과 같은 다른 O (n) 연산으로 변환합니다. 이것은 @ 6502 대답과 일치합니다. 어쨌든, 당신이 지시 된 목록 초기화기를 사용해야한다면, 시간이 비용 처리 절차에 의해 지배되기 때문에 그 차이가 거의 없다. 실제 생성자에 대한 호출을 통한 지시 된 초기화가 바람직합니다.
CPython을 사용한다고 가정하십니까? 그렇다면 목록에 그런 방법이 없습니다. [TimeComplexity] (https://wiki.python.org/moin/TimeComplexity)를 확인하십시오. – Marcin
이 코드의 목적은 무엇입니까? – Joel
코드 형식이 약간 문제가 있습니다. 다시 확인하십시오. 복사하고 붙여 넣으면 예상 한대로 작동하는지 확인하십시오. – Joel