NetworkX dict-of-dict adjacency: why flexibility beats raw speed
NetworkX stores adjacency as a dict of dicts to support arbitrary nodes and rich attributes. That flexibility enables incremental building and attribute filtering, with trade-offs in memory and speed at scale.