这是我到目前为止尝试的:
a, b, c = ([],)*3
a.append(0)
b.append(1)
c.append(2)
print(a,b,c)
>> [0, 1, 2] [0, 1, 2] [0, 1, 2] # Result
>> [0] [1] [2] # Expected results
>>> a, b, c = [],[],[]
>>> id(a),id(b),id(c)
(573212632, 635724224, 626682216)
或
>>> a,b,c = ([] for _ in range(3) )
>>> id(a),id(b),id(c)
(633263648, 197690032, 633261352)
>>> a.append(1)
>>> b.append(2)
>>> c.append(3)
>>> a,b,c
([1], [2], [3])
问题是您仅创建一个列表然后重复。
因此您的代码与:
相同def build_lists():
l = []
return l, l, l
a, b, c = build_lists()
因此,以下内容将有效,因为这将为每次迭代创建新列表:
a, b, c = [[] for i in range(3)]