class ObjA(object):
def __init__(self, self_id):
self.id = self_id
self.sub_items = []
def __str__(self):
return "objA{id=%d;sub_items=%s}" % (self.id, str(self.sub_items))
__repr__ = __str__
lst = []
a1 = ObjA(1)
a1.sub_items.append(1)
a1.sub_items.append(2)
a2 = ObjA(2)
a2.sub_items.append(3)
lst.append(a1)
lst.append(a2)
result = {a.id: {tmp: a} for a in lst for tmp in a.sub_items}
print result
结果是:
{1: {2: objA{id=1;sub_items=[1, 2]}},
2: {3: objA{id=2;sub_items=[3]}}};
但我想要这样:
{1: {1: objA{id=1;sub_items=[1, 2]},
2: objA{id=1;sub_items=[1, 2]}},
2: {3: objA{id=2;sub_items=[3]}}};
有点不对劲
您要查找的内容如下:
原始版本通常用于创建平面数据结构。这导致键
1
被分配两次,只保留第二个值相关问题 更多 >
编程相关推荐