class MyClass():
list3 = []
list3
是一个类变量,因此该类的所有实例都共享它。每次添加到
清单3
在…上
任何
例如,它是附加到单一共享列表的。
修理
MyClass
使
清单3
实例变量将为您提供所需的行为:
class MyClass:
def __init__(self):
self.list3 = []
我还建议简化你的工作
for
循环,因为它们有点难以遵循;如果按元素进行迭代,就更容易弄清楚每个循环在做什么。(此外,避免使用内置名称调用变量,如
list
!)
list1 = [[MyClass(), MyClass()], [MyClass()]]
list2 = [2, 2]
for sublist, num in zip(list1, list2):
for obj in sublist:
obj.list3.extend(1 for _ in range(num))
for sublist in list1:
for obj in sublist:
print(obj.list3)
印刷品:
[1, 1]
[1, 1]
[1, 1]