Piszę sobie sam dla siebie prosty projekt w Pythonie (żeby odpocząć po tym całym programowaniu w pracy ;)) i jak to mam w zwyczaju w tego typu projektach dla zabawy, przeintelektualizuję wszystko co się da i jak się da — przedwczesna optymalizacja na każdym kroku, dziwne i rzadziej spotykane algorytmy implementowane z palca itd. Ot, to mnie bawi.
Jedną rzeczą, którą próbuję zrobić, a co do której nie mam dobrego pomysłu, jest skojarzenie dwóch zmiennych. Dokładniej: mam sporo elementów (w praktyce koło dziesięciu tysięcy, ale wolę założyć, że miliony — bo to bliższe idei tego przesadzonego projektu) oraz niezbyt dużo (rząd wielkości taki, jak liczby elementów) takich skojarzeń. Skojarzenia tyczą się pary nieuporządkowanej.
I teraz chcę to jakoś sprytnie trzymać, by móc szybko sprawdzić:
- czy dwie wartości są skojarzone
- z jakimi wartościami skojarzona jest dana zmienna
Co mi przyszło do głowy:
- słownik indeksowany parą uporządkowaną i wrzucanie na dwa razy — ale to zły pomysł, bo znalezienie wszystkich skojarzeń zmiennych jest wolne
-
scipy.sparse
- trzymanie w każdej ze zmiennych kopca z odwołaniami do innych zmiennych, z którymi jest skojarzona
Jakieś lepsze pomysły? A jak nie lepsze, to chociaż ciekawe?