【发布时间】:2019-04-27 09:50:54
【问题描述】:
我的代码有问题,尝试查找如何修复它并尝试了多种方法,但就是不行
这是我得到的:
with open("people-data.txt") as f:
children= {}
for line in f.readlines():
parent, child = line.split("->")
children[parent] = child
我尝试使用:children[parent].append(child) 和其他东西。
我的文件如下所示:
Mary->Patricia
Mary->Lisa
Patricia->Barbara
我想要的是,当我使用 children[Mary] 时,我得到了 ['Patricia', 'Lisa'],但我的代码所做的只是给出我的 'Lisa' 并覆盖 'Patricia'。
【问题讨论】:
-
应该是
children[parent] = child。在您的情况下,您将存储密钥"parent"并覆盖它。 -
对不起,我抄错了,让我改正
-
您需要使用集合中的默认字典。
-
当然会覆盖。
children[parent] = child还会做什么?您需要在字典的每个值中保留列表,这可以通过使用children = defaultdict(list)和children[parent].append(child)轻松完成
标签: python python-3.x dictionary