Mam timestamp datetime Python i dużą dict (indeks), gdzie klucze są znaczniki czasu, a wartości są inne informacje Jestem zainteresowanyPython. - Lokalizowanie najbliższy znacznik czasu
muszę odnaleźć datetime (klucz) w indeksie, który jest najbliżej znacznika czasu, tak skutecznie, jak to możliwe.
W tej chwili robię coś takiego:
for timestamp in timestamps:
closestTimestamp = min(index,key=lambda datetime : abs(timestamp - datetime))
który działa, ale trwa zbyt długo - mój indeks DICT ma miliony wartości, a robię tysiące wyszukiwania razy. Jestem elastyczny w strukturach danych i tak dalej - znaczniki czasowe są z grubsza sekwencyjne, więc jestem iteracji od pierwszego do ostatniego znacznika czasu. Podobnie znaczniki czasowe w pliku tekstowym, które ładuję do dyktafonu, są sekwencyjne.
Wszelkie pomysły na optymalizację byłyby bardzo mile widziane.
Czy duży dykt jest względnie statyczny, czy często dodajecie i usuwacie wpisy? –
Dyktat jest w rzeczywistości całkowicie statyczny. – Caligari
Bardzo dziękuję za wszystkie przydatne odpowiedzi. Miałem trochę zabawy z sugestiami i wygląda na to, że na pewno będę w stanie rozwiązać mój problem, wzrost prędkości jest ogromny. Czas w domu teraz, więc jutro będę miał trochę więcej zabawy i zaktualizuję moją ostatnią implementację. – Caligari