List + = Tuple vs List = List + Tuple

时间:2012-11-11 16:17:47

标签: python list concatenation tuples

假设我有这些作业:

points = []
point = (1, 2)

为什么这样做:

points += point

它完全正常,给我分数= [1,2]。 但是,如果我做了类似的事情:

points = points + point

它给了我一个TypeError:只能将列表(不是“元组”)连接到列表。 这些陈述不是一回事吗?

1 个答案:

答案 0 :(得分:21)

区别在于,list +=等同于list.extend(),它接受​​任何可迭代并扩展列表,它作为元组是可迭代的。 (并将列表扩展到原位)。

另一方面,第二个为points分配一个新列表,并尝试将列表连接到一个元组,这是不完成的,因为它不清楚预期结果是什么(列表或元组?)