【问题标题】:Family tree in PythonPython中的家谱
【发布时间】:2023-03-08 22:50:01
【问题描述】:

我需要从一对夫妇开始建立一个四代的家谱。之后,如果我输入一个人的姓名和“兄弟”或“姐妹”或“父母”之类的关系,我的代码应该输出该人的兄弟姐妹或父母。我对 Python 有一定的了解,并且在 DSA 中自学。我认为我应该将数据建模为具有两个根节点(即第一对)的树 DS 的字典和代码。但我不知道如何开始。我只需要知道如何开始对家谱进行建模以及如何进行编码的方向。先感谢您!

【问题讨论】:

    标签: python algorithm family-tree


    【解决方案1】:

    有很多方法可以给猫剥皮,但我建议创建:

    1. 一个Person 类,其中包含有关个人(性别)和直接关系数据(父母、配偶、子女)的相关数据。
    2. 将名称映射到Person 元素的字典。

    这应该可以让您回答所有必要的问题,并且它足够灵活,可以处理各种家谱(包括非树形的家谱)。

    【讨论】:

    • 创建类后如何将数据存储在字典中?我的意思是如何将名称映射到类元素?
    • 不确定我是否理解这个问题 - familyTree['Hans'] = Person(...) 会将名称 'Hans'Person(...) 的映射添加到字典 familyTreedocs.python.org/3.7/tutorial/datastructures.html#dictionaries
    • 与您的回答有关,但不完全相同。我想知道我是否可以创建嵌套字典以及如何打印内容。例如:{'Hans': {'name': 'Lucy', 'relation': 'wife''}}。所以 Person 类接受两个参数名称和关系,我需要打印出来。
    • 为此创建方法__init__(构造函数)和__repr__(字符串表示),参见stackoverflow.com/questions/1984162/purpose-of-pythons-repr
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2017-07-26
    • 2018-09-06
    • 1970-01-01
    • 2022-12-16
    • 2011-12-22
    • 2016-03-17
    • 2016-11-06
    相关资源
    最近更新 更多