为何Python列表可用‘+=’运算符追加元素却不能用‘+’运算符?
列表追加元素的两种写法差异解析
你原本以为下面两段代码要么都报错要么都能正常运行,但实际结果却不一样:
运行正常的代码
word = [] word += "e" print(word)
这段代码会输出 ['e']。因为+=对于列表来说,相当于调用list.extend()方法,它会把右侧的可迭代对象(这里的字符串"e"是可迭代的,会被拆分为单个字符)的所有元素逐个追加到列表中。
会报错的代码
word = [] word = word + "e" print(word)
这段代码会抛出TypeError: can only concatenate list (not "str") to list错误。原因是+作为序列拼接运算符,要求两侧的操作数必须是相同类型的序列——要么都是列表,要么都是字符串,无法直接把列表和字符串拼接在一起。
核心区别
+=是原地修改列表的运算符,接受任意可迭代对象作为右侧参数,将其元素扩展到当前列表中;+是创建新序列的拼接运算符,要求两侧操作数类型完全一致,否则会触发类型错误。
内容的提问来源于stack exchange,提问作者Isaac Semb
相关产品推荐
相关产品推荐

