【发布时间】:2019-12-26 12:24:57
【问题描述】:
我正在处理的文本文件
3:d:10:i:30
1:d:10:i:15
4:r:30
1:r:15
2:d:12:r:8
4:l:20
5:i:15
3:l:20:r:22
4:d:30
5:l:15:r:15
我正在尝试从一个文本文件中打印一个字典,它应该看起来像:
{1: {'d': 10, 'i': 15, 'r': 15},
2: {'d': 12, 'r': 8},
3: {'d': 10, 'i': 30, 'l': 20, 'r': 22},
4: {'d': 30, 'l': 20, 'r': 30},
5: { 'i': 15, 'l': 15, 'r': 15}}
相反,我的代码覆盖了文件中的每一行,并且只将最近的一行作为字典中的值,所以它看起来像:
{'3': {'l': '20', 'r': '22'},
'1': {'r': '15'},
'4': {'d': '30'},
'2': {'d': '12', 'r': '8'},
'5': {'l': '15', 'r': '15'}})
这是我目前所拥有的
def read_db(file):
d = defaultdict(dict)
for line in open('db1.txt'):
z = line.rstrip().split(':')
d[z[0]]=dict( zip(z[1::2],z[2::2]))
print(d)
我尝试执行 += 但该操作数不适用于 dict。我有点卡住了。感谢您的帮助
【问题讨论】:
标签: python file dictionary