Tôi đang tìm hiểu về danh sách và tôi đã tìm thấy đoạn mã nhỏ này trên một trang web khác:
return ''.join([`num` for num in xrange(loop_count)])
Tôi đã dành một vài phút để cố gắng tái tạo chức năng (bằng cách nhập) trước khi nhận ra rằng `num`
bit đang phá vỡ nó.
Bao quanh một câu lệnh trong các ký tự đó làm gì? Từ những gì tôi có thể thấy nó tương đương với str (num). Nhưng khi tôi hẹn giờ nó:
return ''.join([str(num) for num in xrange(10000000)])
Mất 4,09 giây trong khi:
return ''.join([`num` for num in xrange(10000000)])
mất 2,43s.
Cả hai đều cho kết quả giống hệt nhau nhưng một kết quả chậm hơn rất nhiều. Chuyện gì đang xảy ra ở đây?
CHỈNH SỬA: Kỳ lạ là ... repr()
cho kết quả hơi chậm hơn `num`
. 2,99 giây so với 2,43 giây. Sử dụng Python 2.6 (chưa thử 3.0).