【发布时间】:2019-05-30 13:33:52
【问题描述】:
在尝试连接列表和元组时,我注意到一个令人惊讶的行为。
通常,它们不会混合:
(0, 1) + [2, 3]
结果:
TypeError:只能将元组(不是“列表”)连接到元组
反之亦然
[0, 1] + (2, 3)
给出:
TypeError:只能将列表(不是“元组”)连接到列表
到目前为止,没有什么出乎意料的。 但是,如果您通过“+=”使用变量赋值,列表的行为会发生变化!
l = [0, 1]
l += (2, 3)
l
给予
[0, 1, 2, 3]
但不适用于元组:
t = (0, 1)
t += [2, 3]
t
仍然产生错误:
TypeError:只能将元组(不是“列表”)连接到元组
当然,这里没有实际问题,但我很好奇: 那里发生了什么?
【问题讨论】:
-
忘了说python版本:3.6.8
-
请检查
tuple和list基本概念。 list 是不可变的,tuple 是不可变的。 -
@Harsha 它们都是不可变的……?!
-
@deceze 拼写错误:列表是可变的,元组是不可变的
-
@HarshaBiyani
list的 instance 是可变的; typelist本身不是。这就是我开玩笑的基础。
标签: python list tuples concatenation