Мне нужно иметь возможность манипулировать большим (10 ^ 7 узлов) графиком в python. Данные, соответствующие каждому краю node/, минимальны, например, небольшое количество строк. Что является наиболее эффективным с точки зрения памяти и скорости, способ сделать это?
Дикты dicts более гибкие и более простые в реализации, но я интуитивно ожидаю, что список списков будет быстрее. Опция списка также потребует, чтобы я сохранил данные отдельно от структуры, в то время как dicts позволял бы что-то вроде:
graph[I][J]["Property"]="value"
Что бы вы предложили?
Да, мне следовало бы понять, что я имею в виду по эффективности. В данном конкретном случае я имею в виду это в отношении поиска случайного доступа.
Загрузка данных в память не является большой проблемой. Это сделано раз и навсегда. Часть времени занимает узлы, поэтому я могу извлечь информацию и измерить интересующие меня показатели.
Я не рассматривал создание каждого класса node (свойства одинаковы для всех узлов), но похоже, что это добавит дополнительный уровень накладных расходов? Я надеялся, что кто-то будет иметь непосредственный опыт в аналогичном случае, который они могли бы поделиться. В конце концов, графики являются одной из наиболее распространенных абстракций в CS.