我有一个列表,它的元素可以具有一个属性,该属性是一个列表。
a = [ob1,ob2,ob3,ob4,ob52,ob7,ob8,ob10]
ob52.list = [ob5,ob6]
ob82.list = [ob8,ob9]
和一个列表
b= [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10]
两个列表都包含10个元素,也就是说它们将始终包含相同数量的元素。
我的意图是如果ob.has_list == False
,则为所有i执行ob[i].b = b[i]
。如果ob
有一个列表,则将ob[i].list
的每个元素分配给相应的b[i]
。
我已经像这样解决了它(很像C语言),并且想知道是否有更简单的方法。
i=0;k=0;j=0
for k in xrange(0,len(a)):
if k<i:
continue
if a[j].has_list:
for q in a[j].list:
q.b = b[i]
i+=1
else:
a[j].b = b[i]
i+=1
j+=1