可变序列添加多个元素

2020-04-24  本文已影响0人  eeert2

对于 可变序列list,collections.deque,我们添加一个元素可以通过

对可变序列添加多个元素呢 ?
if __name__ == '__main__':
    data = [1, 3, 5]
    target = [2, 4, 6]
    ret = data + target
    data += target
    print(data)  # [1, 3, 5, 2, 4, 6]

这种方法有需要注意的地方,+ 前后的两个参数类型必须相同

def target():
    """生成器"""
    for value in range(5):
        yield value


if __name__ == '__main__':
    data = []
    data.extend(target())
    print(data)

三、备注

网上有说+=.extend()效果相同的,甚至说+=调用了.extend()。实际上这种说法是不对的。
+=在完成数据扩展后有一步将自身引用赋值给自身的操作
如下:使用 extend()可以正常进行

if __name__ == '__main__':
    test = (1, 2, [3])
    test[2].extend(target())
    print(test)  # (1, 2, [3, 0, 1, 2, 3, 4])

使用 += 就会报错:

if __name__ == '__main__':
    test = (1, 2, [3])
    test[2]+=target()
    print(test)

>>> TypeError: 'tuple' object does not support item assignment
上一篇下一篇

猜你喜欢

热点阅读