说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的内置可变序列对象的 extend() 方法,可以对原对象的元素进行批量增加扩展, 支持列表(list)、字节数组(bytearray)等类型。序列的 +=
是它的等效操作。
以下是一些使用方法:
lst = [1, 2, [3, 4]]
# lst.extend(1)
# TypeError: 'int' object is not iterable
lst.extend([5, 6])
lst.extend([])
lst
# [1, 2, [3, 4], 5, 6]
lst.extend(range(1, 3))
lst
# [1, 2, [3, 4], 5, 6, 1, 2]
字节数组:
bta = bytearray(b'abc')
bta
# bytearray(b'abc')
bta.extend(b'efg')
bta
# bytearray(b'abcefg')
bta.extend(['g'])
# TypeError: 'str' object cannot be interpreted as an integer
序列的 extend() 它的语法为:
s.extend() # 通用语法
list.extend(x) # 列表
bytearray.extend(x) # 字节数组
用 x 的内容扩展原对象,x 必须是一个可迭代对象,基本上等同于 s[len(s):len(s)] = t
。追加的多个元素在序列的尾部。
bytearray 传入的必须是一个可迭代的字节序列。
extend() 是一个原地操作(inplace,见 原地操作),执行时它会修改原对象,并返回一个 None,要看到原对象修改的结果,需要再次打印原对象。
关于原地操作,可参考 append() 追加元素 中关于原地操作的说明。
extend 与 +=
是等价的,会扩展原有的列表,+
只能用来连接列表,且不改变原有的列表,会返回一个新列表,append 会往原有列表中添加一个新的元素。基本上等同于 s[len(s):len(s)] = t
。
如列表的 +=
的实现源码为:
class list(object):
def __iadd__(self, other):
if not isinstance(other, list):
other = list(other)
return self.extend(other)
如果只追加单个元素可以使用 append() 方法。
如果想在指定位置增加元素可以使用 insert() 方法。
对字典和集合扩展元素,可以使用他们的 update() 方法。
更新时间:March 25, 2024, 12:10 p.m. 标签:python extend 扩展