好吧,我有一个非常天真的解决方案,没有导入和列表理解。
final = {}
with open('file.txt', 'r') as f:
prev = None
for line in f.readlines():
key, value = line.split()
if prev == None:
prev = key
d = {'apple': 0, 'orange': 0, 'strawberry': 0}
elif prev != key:
final[int(prev)] = d
prev = key
d = {'apple': 0, 'orange': 0, 'strawberry': 0}
d[value] = d.get(value, 0)+1
final[int(prev)] = d
print(final)
我所做的只是创建一个临时的内部字典,然后更新它直到下一个值没有达到,然后如果达到下一个值,那么我就把上一个字典添加到最后一个字典中。
输出:
{0: {'apple': 1, 'orange': 1, 'strawberry': 0}, 1: {'apple': 2, 'orange': 0, 'strawberry': 1}, 2: {'apple': 0, 'orange': 1, 'strawberry': 0}}
希望有帮助:)