1

ファイルから multi dict を作成しようとしています。

k = []
with open('directory file txt',r) as f:
    for line in f:
        k.append(line.strip().split('.'))

このようなマルチ辞書を作成するにはどうすればよいですか:

dict=[key1][key2][key3][key4]='value'

wherekey1は最初の行の最初の要素key2、2 番目などです。

4

1 に答える 1

6

リストを反転し、結果をネストします。

result = {}
with open('directory file txt',r) as f:
    for line in f:
        keys = line.strip().split('.')
        value = keys[-1]
        for key in reversed(keys[1:-1]):
            value = {key: value}
        result[keys[0]] = value

これは、「上位」に複製されたキーをそれほどうまく処理しません。キーが重複している場合は、もう少し面倒な設定を使用する必要があります(defaultdict()状況をうまく処理できないと思います)。

result = {}
with open('directory file txt',r) as f:
    for line in f:
        keys = line.strip().split('.')
        current = result
        for key in keys[:-2]:
            current = current.setdefault(key, {})
        current[keys[-2]] = keys[-1]
于 2012-11-30T15:20:36.070 に答える