Chr*_*ris 5 python string slice
只是好奇为什么python会允许我更新列表但不是字符串?
>>> s = "abc"
>>> s[1:2]
'b'
>>> s[1:3]
'bc'
>>> s[1:3] = "aa"
>>> l = [1,2,3]
>>> l[1:3]
[2, 3]
>>> l[1:3] = [9,0]
>>> l
[1, 9, 0]
Run Code Online (Sandbox Code Playgroud)
有这么好的理由吗?(我确信有.)
Python区分可变和不可变的数据类型.使字符串不可变是Python中的一般设计决策.整数是不可变的,你不能改变它的值42.字符串也被认为是Python中的值,因此您无法更改"fourty-two"为其他内容.
该设计决策允许多种优化.例如,如果字符串操作不更改字符串的值,则CPython通常只返回原始字符串.如果字符串是可变的,则总是需要制作副本.
| 归档时间: |
|
| 查看次数: |
406 次 |
| 最近记录: |