joa*_*uin 8 python string list
>>> b = []
>>> c = '1234'
>>> b += c
>>> b
['1', '2', '3', '4']
>>>
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?这应该不行,对吗?还是我错过了一些明显的东西?
>>> b = []
>>> c = '1234'
>>> b + c
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
b + c
TypeError: can only concatenate list (not "str") to list
>>>
Run Code Online (Sandbox Code Playgroud)
然后a += b
并不总是等同于a = a + b
?
NPE*_*NPE 14
字符串是可迭代的:元素是字符串的字符.将iterable添加到列表时,iterable的元素将附加到列表中.
以下任何一个都会执行您期望的操作(即附加字符串,而不是使用字符串的字符扩展列表):
b += [c]
Run Code Online (Sandbox Code Playgroud)
要么
b.append(c)
Run Code Online (Sandbox Code Playgroud)
Tim*_*ker 10
该+=
运营商扩展列表,而不是附加给它:
>>> b = []
>>> c = "1234"
>>> b.append(c)
>>> b
['1234']
>>> b.extend(c)
>>> b
['1234', '1', '2', '3', '4']
>>> b += c
>>> b
['1234', '1', '2', '3', '4', '1', '2', '3', '4']
>>> b += [c]
>>> b
['1234', '1', '2', '3', '4', '1', '2', '3', '4', '1234']
Run Code Online (Sandbox Code Playgroud)