Python的字符串被划分为不可变序列的类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在本地进行修改。
基本操作
字符串可以通过+操作符进行合并,可以使用*运算符进行重复。
1
2
3
4
5
6
|
>>> len ( "abc" ) 3 >>> 'abc' + 'def' 'abcdef' >>> 'NI!' * 4 'NI!NI!NI!NI!' |
字符串内部的一个反斜杠“\”可允许把字符串放于多行。
1
2
3
4
5
6
|
>>> str = "aaa\ ....bbb\ ....ccc\ ....ddd" >>> str aaabbbcccddd |
索引和分片
在Python中,字符串中的字符是通过索引提取的。
分片X[I:J],表示“取出在X中从偏移量为I,直到但不包括偏移量为J的内容”。结果就是返回一个新的对象。
在一个分片中,左边界默认为0,右边界默认为分片序列的长度。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
S = 'Spam' >>>S[ 1 :] 'pam' >>>S 'Spam' >>>S[: 3 ] 'Spa' >>>S[: - 1 ] 'Spa' >>>S[:] 'Spam' S[:]实现了一个完全的顶层的序列对象的拷贝 - 一个有相同值,但是是不同内存片区的对象。 X[I:J:K]表示“索引x对象中的元素,从偏移为I直到偏移为J - 1 ,每隔K元素索引一次“,第三个限制K,默认为 1 ,表示步进。 也可以使用负数作为步进,S[:: - 1 ]的作用实际上是将序列进行发转。 >>>S = 'hello' >>>S[:: - 1 ] 'olleh' |
字符串转化工具
int函数将字符串转换为数字,str函数将数字转换为字符串表达形式。repr函数也能够将一个对象转换为其字符串形式,然后这些返回的对象将作为代码的字符串,可以重新创建对象。
不可变性
字符串属于不可变序列,即不能在原地修改一个字符串,例如,给一个索引进行赋值。若要改变一个字符串,需要利用合并,分片这样的工具来建立并赋值给一个新的字符串,倘若必要的话,还要将这个结果赋值给字符串最初的变量名。
1
2
3
4
5
6
7
8
9
10
11
12
|
>>>S = 'spam' >>>S[ 0 ] = "x" #不允许修改S的值 >>>S = S + "SPAM" >>>S 'spamSPAM' >>>S = 'splot' >>>S = S.replace( 'pl' , 'plmal' ) >>>S 'splmalot' |