添加vs就地将str添加到列表

你好
我试图理解为什么我可以做
['东西']
但不是
Trackback(最近的最新电话):
文件" ",第1行,<模块>
typeError:只能列表(不是" str")列表
有人可以解释逻辑吗?为什么在场添加类型
错误,但是通常的添加是? (这既适用于Python 2.6rc1和
3.0b2)
谢谢
罗马

# 回答1


RS387写道:
['东西']
但不是
Trackback(最近的最新电话):
文件" ",第1行,<模块>
typeError:只能列表(不是" str")列表
有人可以解释逻辑吗?为什么在场添加类型
错误,但是通常的添加是? (这既适用于Python 2.6rc1和
3.0b2)
这是因为`+=`操作员正在执行呼叫
"扩展"方法,将其论点视为通用序列,并且
不强制类型。任何其他序列都会发生同样的事情
键入右手操作数;例如,元组:
[1,2,3]
Trackback(最近的最新电话):
文件" ",第1行,在?
TypeError:只能列表(不是"元组")列表
- -
Erik Max Francis && ma*@alcyone.com && http://www.alcyone.com/max/
美国加利福尼亚州圣何塞,美国&& 37 18 n 121 57 W && aim,y!m erikmaxfrancis
人是一个讨厌的人,而不是一个充满爱的动物。
- 丽贝卡·韦斯特
# 回答2


10月2日,8:11*上午,Erik Max Francis 我懂了。你知道这是否被视为语言的问题
设计?
如果是这样,可以通过更改列表来解决。
左参数是否是列表...或者,通过更改__iadd__
typeError,无论哪种方式都被视为更正确/理想。
# 回答3


RS387写道:
我懂了。你知道这是否被视为语言的问题
设计?
不。
[1,2,3] + [4,5,6]
生产
[1,2,3,4,5,6]
不是
[1,2,3,[4,5,6]]
梅尔。
# 回答4


10月2日,3:50*pm,mel 不。
好的,我现在明白了。我假设可以在
"+="条款如下:
def add(x,y):
temp = list(x)
温度 += y
返回温度
但事实证明,这根本不是"+"的含义。有点
Gotcha ...
罗马

标签: python

添加新评论