Ans*_* T. 5 python tuples list concatenation
当尝试连接列表和元组时,我注意到了一个令人惊讶的行为。
通常,它们不混合使用:
(0, 1) + [2, 3]
Run Code Online (Sandbox Code Playgroud)
结果是:
TypeError:只能将元组(不是“列表”)连接到元组
反之亦然
[0, 1] + (2, 3)
Run Code Online (Sandbox Code Playgroud)
给出:
TypeError:只能将列表(而不是“元组”)连接到列表
到目前为止,没有什么是意外的。但是,如果通过“ + =”使用变量分配,则列表的行为会改变!
l = [0, 1]
l += (2, 3)
l
Run Code Online (Sandbox Code Playgroud)
给
[0,1,2,3]
但是不适合元组:
t = (0, 1)
t += [2, 3]
t
Run Code Online (Sandbox Code Playgroud)
仍然产生错误:
TypeError:只能将元组(不是“列表”)连接到元组
当然,这里没有实际问题,但我很好奇:那里发生了什么?
+=for列表不希望将实际列表作为其右侧操作数;它将接受任何可迭代的值。它实际上是的运算符版本list.extend(它也接受任意可迭代的值)。
tuple完全没有定义__iadd__,所以t += [2, 3]只是语法糖t = t + [2,3],我们已经确认tuple.__add__不能将元组和列表加在一起。
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |