Python面向对象模型
我有类似的事情。
具有属于某种状态的相同型号的汽车的多种颜色的人。
我设计了一个人类,其属性为
person name
,car model
,car year
,car state
和car color
。颜色应该是一个列表,因为一个人可以拥有许多不同颜色但具有相同型号的汽车。
现在我如何找到和打印2个不同的人,他们拥有相同型号的汽车和相同颜色的汽车,但在面向对象的术语中属于不同的状态?
我是Python的新手。
在人物对象中插入颜色时如何插入列表以及如何从列表中检索?我知道如何为属性执行此操作,但我对列表操作有点困惑。
数据可以是这样的:
person1 ford [red,blue,yellow] new-york
person2 honda [red,blue] new-york
person3 ford [red,grey] california
person4 ford [red] california
person5 honda [red] new-york
现在我的结果应该只是:
[(person1,person5)] (same model car,same color, different state)
没有找到相关结果
已邀请:
3 个回复
联课
如果你想找到几个具有匹配属性的人,你可以做一些 迭代(在这里用一些伪代码表示,因为我认为是专注于 该算法比聚焦python更有用,以实现它:
此代码比较了一对人。它没有比较一个人 自理。它并不能比较生活在同一州的人 要求“......但属于不同的国家”。所以让我们过滤那些相同的状态 人们出去了。它只比较拥有相同类型汽车的人。 (如果 人们拥有不同类型的汽车,那么你只需添加两个嵌套的汽车 循环。)然后它注意到那些具有相同颜色的汽车的人。 这个算法有一个潜在的错误:它会报告
。所以条目是重复的。可以修改 算法只搜索人的上三角或下三角 想要这个重复:
注意我们可以删除
检查,因为我们明确不能 得到
。
定义为以
开头。
讹巳漓把备
和
与
分开建模。然后,每个人都可以拥有汽车列表,并且生活在一个州(甚至是州的列表,具体取决于您的型号)。这些是有关系的。如果你愿意的话,它还允许你稍后继承
并在之后制作
。
联海
迭代人员实例列表的快捷方式是使用python的itertools库并使用置换生成器。
希望这足以帮助您一路走来。重读你的问题看起来你可能需要在python中进行更多关于编程的阅读。但是要解决有关列表的问题,这里有一些代码可以帮助您解决问题。