我的程序有点问题,这是代码
children_and_parents = {}
class Parent_Child:
def __init__(self, parent, child):
self.parent = parent
self.child = child
def read_data(filename):
with open(filename) as f:
parent, child = line.rstrip("\n").split("->")
children_and_parents[parent] = Parent_Child(parent, child)
问题出在文件中,我的父母有多个孩子,例如:
玛丽->帕特里夏
Mary-> Lisa
但是当我打电话给children_and_parents [“ Mary”]。child时,我只会得到Lisa,但我应该得到Patricia和Lisa,我也希望它们成为不同的“实体”,以便以后可以调用和使用它们>
答案 0 :(得分:1)
您可以有多个这样的孩子:
children_and_parents = {}
class Parent_Child:
def __init__(self, parent, child):
self.parent = parent
self.child = [child]
def read_data(filename):
with open(filename) as f:
parent, child = line.rstrip("\n").split("->")
if parent in children_and_parents:
# append the child
children_and_parents[parent].child.append(child)
else:
children_and_parents[parent] = Parent_Child(parent, child)
这会将子级作为列表,并在创建前检查父级是否已存在
答案 1 :(得分:0)
猜您可以更改以下行
children_and_parents[parent] = Parent_Child(parent, child)
类似
children_and_parents.setdefault(parent, []).append(Parent_Child(parent, child))