以下算法的更pythonic方法

时间:2012-11-18 16:29:27

标签: python algorithm list

我更合乎逻辑地改变了最终结构:

{'state1': {'city1': ['dict1', 'dict2']}, 'state2': {'City2': ['dict3']}}

和代码:

dir_dict = {}
for one in objects:
    state = one.dir.city.state.name
    city ​​= one.dir.city.name
    address = one.dir.address
    if state not in dir_dict:
        dir_dict[state] = {}
    if city not in dir_dict[state]:
        dir_dict[state][city] = []
    dir_dict[state][city].append(address)

我仍然实现代码@ Eric

1 个答案:

答案 0 :(得分:0)

from collections import defaultdict
dir_dict = defaultdict(lambda: defaultdict(set))
for x in objects:
     dir_dict[x.state][x.city].add(x.address)

dir_list = dir_dict.keys()