Njx*_*Njx 6 python list operation
我处在一个非常有趣的情况,我很惊讶.实际上我认为两者i += 1 and i = i + 1都是一样的.但这里并不相同;
a = [1,2]
a += "ali"
Run Code Online (Sandbox Code Playgroud)
和 output is [1,2,"a","l","i"]
但如果我这样写
a = [1,2]
a = a + "ali"
Run Code Online (Sandbox Code Playgroud)
它不起作用.
我真的很困惑.他们不一样吗?
在Python中,由于你不能声明静态类型,所以这种行为不会出现,但如果你看看C++,如果你声明int a = 4为整数然后执行a += 5.4,a将变成9,而a = a + 5.4将中断。
其原因在于a += b和a = a + b不一样。用 Python 术语来说,a += bis 只是a.__iadd__(b)和a = a + bis a = a.__add__(b),或者如果它不存在,则a = b.__radd__(a)。您无法使用将列表和字符串添加在一起,+因此第二个代码不起作用,但+=可以工作,因为它会自动将某些类型相互转换,即将可迭代对象相互转换。您不能这样做,a = []; a += ""但反之亦然,因为您可以使用 明确地将字符串转换为列表list("...")。
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |