Python 开列成一个清单

Python 开列成一个清单,python,Python,在Python中,解包到元组之间有什么区别吗: x, y, z = v 然后把它整理成一张清单 [x, y, z] = v 不。事实上,x,y,z=v是以下内容的简写: (x, y, z) = v 。。。这是在一个元组中解包。同样的行为也会发生: >>> v = (1, 3, 4) >>> [x, y, z] = v >>> x, y, z (1, 3, 4) >>> x, y, z = v >>>

在Python中,解包到元组之间有什么区别吗:

x, y, z = v
然后把它整理成一张清单

[x, y, z] = v

不。事实上,
x,y,z=v
是以下内容的简写:

(x, y, z) = v
。。。这是在一个元组中解包。同样的行为也会发生:

>>> v = (1, 3, 4)
>>> [x, y, z] = v
>>> x, y, z
(1, 3, 4)
>>> x, y, z = v
>>> x, y, z
(1, 3, 4)

绝对没有,甚至是字节码(使用):


你试过了吗?发生了什么事?我试过这个案子,当然,同样的“发生了”。我问过,因为理论上它在不同的语境中可能有不同的含义;我能找到的最好的是。
>>> def list_assign(args):
    [x, y, z] = args
    return x, y, z

>>> def tuple_assign(args):
    x, y, z = args
    return x, y, z

>>> import dis
>>> dis.dis(list_assign)
  2           0 LOAD_FAST                0 (args) 
              3 UNPACK_SEQUENCE          3 
              6 STORE_FAST               1 (x) 
              9 STORE_FAST               2 (y) 
             12 STORE_FAST               3 (z) 

  3          15 LOAD_FAST                1 (x) 
             18 LOAD_FAST                2 (y) 
             21 LOAD_FAST                3 (z) 
             24 BUILD_TUPLE              3 
             27 RETURN_VALUE         
>>> dis.dis(tuple_assign)
  2           0 LOAD_FAST                0 (args) 
              3 UNPACK_SEQUENCE          3 
              6 STORE_FAST               1 (x) 
              9 STORE_FAST               2 (y) 
             12 STORE_FAST               3 (z) 

  3          15 LOAD_FAST                1 (x) 
             18 LOAD_FAST                2 (y) 
             21 LOAD_FAST                3 (z) 
             24 BUILD_TUPLE              3 
             27 RETURN_VALUE