21
파이썬 dict 생성자가 리터럴 구문을 사용하는 것보다 느린 이유는 무엇입니까?dict 리터럴 구문을 dict 생성자보다 선호하는 이유는 무엇입니까?
내 동료와 뜨거운 토론 후, 나는 약간의 비교를했고, 다음과 같은 통계를 가지고 :
python2.7 -m timeit "d = dict(x=1, y=2, z=3)"
1000000 loops, best of 3: 0.47 usec per loop
python2.7 -m timeit "d = {'x': 1, 'y': 2, 'z': 3}"
10000000 loops, best of 3: 0.162 usec per loop
생성자가 느린 이유는 무엇입니까? 그리고 어떤 상황에서, 더 빠를까요?
보통 이것은 'dict'이 다른 것을 가리킬 수 있다는 사실과 관련이 있습니다. 따라서 통역사는 실제 최적화를 할 수 없습니다. '{}'구문을 사용하면 이러한 최적화를 수행 할 수 있습니다. –
즉 :'dict'는 항상 진짜 함수 호출이고'{}'는 컴파일 타임에 처리됩니다. – Eevee
"[d = dict()"과 "d = {}"의 차이점 (http://stackoverflow.com/questions/2745008/differences-between-d-dict-and-d) –