Tôi có một timestamp Python datetime và một dict lớn (index), nơi phím dấu thời gian và giá trị là một số thông tin khác Tôi quan tâm đếnPython -. Định vị các dấu thời gian gần nhất
tôi cần phải tìm ra datetime (khóa) trong chỉ mục gần nhất với dấu thời gian, càng hiệu quả càng tốt.
Tại thời điểm tôi đang làm một cái gì đó như:
for timestamp in timestamps:
closestTimestamp = min(index,key=lambda datetime : abs(timestamp - datetime))
mà làm việc, nhưng phải mất quá nhiều thời gian - index dict tôi có hàng triệu các giá trị, và tôi đang làm hàng ngàn tìm kiếm lần. Tôi linh hoạt với các cấu trúc dữ liệu và vân vân - các dấu thời gian gần như tuần tự, do đó tôi đang lặp lại từ lần đầu tiên đến dấu thời gian cuối cùng. Tương tự như vậy, dấu thời gian trong tệp văn bản mà tôi tải vào dict là tuần tự.
Mọi ý tưởng về tối ưu hóa sẽ được đánh giá rất nhiều.
Quy tắc lớn có tương đối tĩnh hay bạn thường xuyên thêm và xóa các mục nhập? –
Lệnh chính tả hoàn toàn tĩnh. – Caligari
Cảm ơn rất nhiều vì tất cả các câu trả lời hữu ích. Tôi đã có một chút của một chơi xung quanh với các đề xuất và có vẻ như tôi chắc chắn sẽ có thể giải quyết vấn đề của tôi, tăng tốc độ là rất lớn. Giờ đây, giờ tôi sẽ chơi thêm một chút vào ngày mai và cập nhật với bản thực hiện cuối cùng của mình. – Caligari