Qual é a estrutura de dados do gráfico mais eficiente no Python? [fechadas]

Eu preciso ser capaz de manipular um gráfico grande (10 ^ 7 nós) em python. Os dados correspondentes a cada nó / borda são mínimos, digamos, um pequeno número de strings. Qual é o mais eficiente, em termos dememória e velocidademaneira de fazer isso?

Um ditto de ditos é mais flexível e mais simples de implementar, mas eu intuitivamente espero que uma lista de listas seja mais rápida. A opção de lista também exigiria que eu mantivesse os dados separados da estrutura, enquanto os dicts permitiriam algo do tipo:

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

O que você sugeriria?

Sim, eu deveria ter sido um pouco mais claro sobre o que quero dizer com eficiência. Neste caso em particular, quero dizer isso em termos de recuperação de acesso aleatório.

Carregar os dados na memória não é um grande problema. Isso é feito de uma vez por todas. A parte demorada é visitar os nós para que eu possa extrair as informações e medir as métricas nas quais estou interessado.

Eu não tinha considerado fazer de cada nó uma classe (as propriedades são as mesmas para todos os nós), mas parece que isso adicionaria uma camada extra de sobrecarga? Eu esperava que alguém tivesse alguma experiência direta com um caso semelhante que eles pudessem compartilhar. Afinal, os gráficos são uma das abstrações mais comuns no CS.

questionAnswers(7)

yourAnswerToTheQuestion