pla*_*etp 2 python tuples list python-3.x
考虑这个例子:
>>> t = (1, 2, 3)
>>> a, b, c = t
>>> a, b, c
(1, 2, 3)
>>> a, *b = t
>>> a, b
(1, [2, 3])
Run Code Online (Sandbox Code Playgroud)
在解压缩元组时,为什么我会得到一个列表而不是一个元组a, *b = t?
如PEP 3132中所述,这是扩展的可迭代解包.类型没有"改变"; 它只是定义了解*包将在所有情况下产生一个列表.
有人建议它屈服:
使加星标的目标成为元组而不是列表.这与函数一致
*args,但更难以进一步处理结果.
尝试以得到加星号的目标的相同类型的源可迭代,例如,
b在a, *b = 'hello'将被分配的字符串'ello'.这可能看起来不错,但不可能与所有迭代一致.
最终,这些提案遭到拒绝.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |