创建嵌套字典,其中内部值是列表

时间:2017-06-01 20:26:50

标签: python python-3.x dictionary nested

所以我想创建一个列表的嵌套字典,其中内部值是一个允许重复的列表:

$scope.estados = [
   {
      uf: 'SP',
      nome: 'São Paulo'
   }
];

这是我到目前为止所做的,但无法弄清楚如何将列表附加到内部值:

d = {'45678':{'ant':['N4', 'N4', 'P3', 'P3']}}

返回:

d={}
with open(file_path, 'r') as f:
    for l in f.readlines()[4:]:
        peaks = l.split()
        if '1' in peaks[5]:
            d.setdefault(peaks[0], {})['ant'] = [peaks[7]]

我的问题是如何将列表作为嵌套字典中的内部值附加?

2 个答案:

答案 0 :(得分:2)

我想我可能已经弄明白你要做什么了。

这有帮助吗?

d.setdefault(peaks[0], {}).setdefault('ant', []).append(peaks[7])

如果没有,请解释文件的样子或其他关于你要做什么的事情。

答案 1 :(得分:1)

假设您的代码基本上是合理的(在处理文件方面),您应该在内部字典上使用setdefault并在列表中使用append

d={}
with open(file_path, 'r') as f:
    for l in f.readlines()[4:]:
        peaks = l.split()
        if '1' in peaks[5]:
            d.setdefault(peaks[0], {}).setdefault('ant', []).append(peaks[7])

目前,您始终使用[peaks[7]]创建新列表,而不是提供附加选项。