我有两门课:
class A:
def __init__(self, name, li):
self.b_list = li
class B:
def __init__(self, i):
self.i = i
class A
包含class B
类型的对象列表。在
假设我有一个class A
对象的列表,那么如何将具有相同的b_list
的class A
对象组合在一起?在
例如:
^{pr2}$在处理之后,应该给我们两个列表,一个列表包含第一个和第三个A
,另一个列表只有第二个A
。或者简单地说:
result = [
[ A([B(1),B(2),B(3)]), A([B(1),B(2),B(3)]) ],
[ A([B(2),B(3)] ]
]
您可以使用属性b\u list作为键对
a_list
进行排序。在或者:
^{pr2}$对于初学者来说,我已经从类A中删除了
name
参数,因为其余的细节都忽略了它。在要将类A对象组合在一起,需要准确定义两个A对象相等时的含义。我已经创建了一个
__cmp__
方法,它可以让我们通过比较对象来对它们进行排序。在现在,既然你的A对象是由B对象组成的,你需要一些东西来定义两个B对象相等的含义。我已经在类B中创建了一个
__eq__
方法来实现这一点。在接下来,我对A实例进行了排序,使它们更容易分组,并向类A添加了
__str__
方法,向类B添加了__repr__
方法,以便您可以验证它们是否正确地组合在一起。在我没有在任何地方添加任何错误检查,所以这段代码有点脆弱。在
结果:
^{pr2}$相关问题 更多 >
编程相关推荐