Si je comprends bien, l'accès aléatoire est en temps constant pour les dicts et les listes de Python, la différence est que vous ne pouvez faire un accès aléatoire qu'aux index entiers avec des listes. Je suppose que vous devez rechercher un nœud par son étiquette, vous voulez donc un dict de dicts.
Cependant, sur le plan des performances, le charger en mémoire peut ne pas être un problème, mais si vous en utilisez trop, vous finirez par échanger sur le disque, ce qui tuera les performances même des dicts très efficaces de Python. Essayez de réduire autant que possible l'utilisation de la mémoire. De plus, la RAM est incroyablement bon marché en ce moment ; si vous faites souvent ce genre de choses, il n'y a aucune raison de ne pas avoir au moins 4 Go.
Si vous souhaitez des conseils pour réduire l'utilisation de la mémoire, donnez plus d'informations sur le type d'informations que vous suivez pour chaque nœud.