Tom*_*mmy 8 python tuples list python-3.x
我有一个不确定大小的列表:
l = [...]
Run Code Online (Sandbox Code Playgroud)
我想将此列表解压缩为具有其他值的元组,但以下操作失败:
t = ("AA", "B", *l, "C")
Run Code Online (Sandbox Code Playgroud)
我如何形成以下内容?
t = ("AA", "B", l[0], ..., l[:-1], "C")
Run Code Online (Sandbox Code Playgroud)
编辑:只做片[a:b]也不错:
t = ("AA", "B", l[a], ..., l[b], "C")
Run Code Online (Sandbox Code Playgroud)
您不能通过替换类似的值来解压缩到元组中(但是 - 请参阅PEP 448),因为解包只会在左侧表达式上发生,或者正如错误消息所示,分配目标.
此外,赋值目标应具有有效的Python变量.在你的情况下,你也在元组中有字符串文字.
但你可以通过连接三个元组来构造你想要的元组,就像这样
>>> l = [1, 2, 3, 4]
>>> ("A", "B") + tuple(l[:-1]) + ("C",)
('A', 'B', 1, 2, 3, 'C')
>>> ("A", "B") + tuple(l) + ("C",)
('A', 'B', 1, 2, 3, 4, 'C')
Run Code Online (Sandbox Code Playgroud)
从 python 3.5 开始,您现在可以使用第一种方法:
>>> l = [1, 2, 3]
>>> t = ("AA", "B", *l, "C")
>>> t
('AA', 'B', 1, 2, 3, 'C')
Run Code Online (Sandbox Code Playgroud)
您可以按照预期使用切片:
>>> ("AA", "B", *l[:-1], "C")
('AA', 'B', 1, 2, 'C')
Run Code Online (Sandbox Code Playgroud)
相关PEP,参考:PEP448
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |