Python:同时初始化几个名称,而不会给它们相同的ID

  • 本文关键字:ID 初始化 Python 几个 python
  • 更新时间 :
  • 英文 :


这是我到目前为止尝试的:

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)]

最新更新