Jaka jest najbardziej wydajna struktura danych graficznych w Pythonie? [Zamknięte]

Muszę być w stanie manipulować dużym (10 ^ 7 węzłów) wykresem w Pythonie. Dane odpowiadające każdemu węzłowi / krawędzi są minimalne, powiedzmy, małą liczbą ciągów. Co jest najbardziej wydajne pod względempamięć i szybkość, sposób na zrobienie tego?

Dyktowanie dyktatów jest bardziej elastyczne i prostsze do wdrożenia, ale intuicyjnie oczekuję, że lista list będzie szybsza. Opcja listy wymagałaby również, aby dane były oddzielone od struktury, podczas gdy dykta pozwoliłaby na coś w rodzaju:

graph[I][J]["Property"]="value"

Co byś zasugerował?

Tak, powinienem był nieco lepiej zrozumieć, co rozumiem przez efektywność. W tym konkretnym przypadku rozumiem to w kategoriach wyszukiwania losowego.

Ładowanie danych do pamięci nie stanowi dużego problemu. Robi się to raz na zawsze. Czasochłonna część polega na odwiedzaniu węzłów, dzięki czemu mogę wyodrębnić informacje i zmierzyć interesujące mnie dane.

Nie zastanawiałem się nad uczynieniem każdego węzła klasą (właściwości są takie same dla wszystkich węzłów), ale wygląda na to, że doda to dodatkową warstwę narzutu? Miałem nadzieję, że ktoś będzie miał bezpośrednie doświadczenie w podobnej sprawie, którą mogliby się podzielić. W końcu wykresy są jedną z najczęstszych abstrakcji w CS.

questionAnswers(7)

yourAnswerToTheQuestion