Делал подобное пару лет назад. Использовались темплейты, которые меняли trunk на motorway и обратно, для достижения хорошего вида карты. Ваш способ просто супер по сравнению с моим! Нам нужно было один раз сделать эту сеть дорог для Северной Америки и забыть. Но Ваш способ позволяет, достаточно оперативно, процессить свежие данные без поддержки дополнительных корректирующих темплейтов.
Есть ещё set() — он меньше в памяти занимает. Грубо говоря, это словарь, в котором есть только ключи, а значений нет.
Как было получено ~500.000? 2^20/2? VLOOKUP в Excel идёт в 2 потока?