【发布时间】:2020-06-23 06:38:55
【问题描述】:
我想了解list +='a' 和list=list+'a' 之间的区别
例如,如果我这样做:
li=[]
for i in 'string':
li+=i
我没有收到错误,但如果我使用第二个选项,按照惯例应该是相同的,但会出错
li=[]
for i in 'string':
li=li+i
TypeError:只能将列表(不是“str”)连接到列表
正确的做法是这样的:
li=[]
for i in 'string':
li=li+[i]
我想知道+= 操作员是如何工作的?它如何能够在列表中获取字符串,是否将字符串转换为列表?
【问题讨论】:
-
+=的返回类型是明确的:它是左操作数的类型。+的返回类型不清楚。程序员是否期望list + str返回一个列表或字符串? -
@khelwood
list应该返回 -
+=等价于list.extend,它接受任何可迭代对象(不仅是列表) -
这能回答你的问题吗? Why does += behave unexpectedly on lists?
标签: python list concatenation