+ =如何使用集合和列表

时间:2017-03-24 10:26:19

标签: python list set python-3.4

我得到了列表和集合串联的有线情况。 例如,我有一个列表并设置

l = [1, 2, 3]
s = {1, 2, 3, 4, 5}

当我运行代码时:

l + s

我有错误(预计会发生)

  

TypeError:只能将列表(不是“set”)连接到列表

但是当我使用+=时,我得到了结果

l += s  # [1, 2, 3, 1, 2, 3, 4, 5]

我知道存在差异。在第一种情况下,我称之为方法operator.add(l, s),而在第二种情况下,我称之为l.__iadd__(s)。 但有人可以解释为什么有两个不同的结果?为什么__iadd__更改了类型但add()引发了异常?

更新

@Jon Clements关于list.extend是正确的。并从documentation

  

list.extend(L)

     

通过附加给定列表中的所有项来扩展列表。相当于[len(a):] = L。

最后l[len(s):] = s就像一个魅力

0 个答案:

没有答案