Tại sao trình xây dựng Python dict chậm hơn so với cú pháp bằng chữ?Tại sao cú pháp chữ dict được ưu tiên hơn so với hàm tạo dict?
Sau cuộc tranh luận nóng với đồng nghiệp của tôi, tôi đã làm một số so sánh và nhận được số liệu thống kê sau đây:
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
lý do các nhà xây dựng chậm là gì? Và trong tình huống nào, nếu có, nó sẽ nhanh hơn?
Thông thường điều này phải làm với thực tế là 'dict' có thể trỏ đến một thứ khác. Vì vậy, thông dịch viên không thể thực hiện bất kỳ tối ưu hóa thực sự nào. Với cú pháp '{}', nó có thể làm cho những tối ưu hóa đó. –
nghĩa là: 'dict' luôn là hàm gọi chính xác, trong khi' {} 'được xử lý tại thời gian biên dịch. – Eevee
có thể trùng lặp với [khác biệt giữa "d = dict()" và "d = {}"] (http://stackoverflow.com/questions/2745008/differences-between-d-dict-and-d) –