在Python
中字符串是一种名为序列的数据结构。python
字符串操作常用操作,如字符串的替换、删除、截取、赋值、连接、比较、查找、分割等。
- 拼接
- 分割
- 查找
- 对比
- 赋值
- 截取
拼接
字符串的拼接可以通过科学计算符(+,*),也可以通过内置方法join来实现。
>>>s='hello'*2 用乘法重叠
>>>print(s)
hellohello
>>>s='hello'+'world' 用加号拼接
>>>print(s)
helloworld
>>>a='world' 用join 拼接
>>>s=''.join(a)
>>>print(s)
world
切片
Python作为序列的一种,当然也可以使用序列的切片操作。
>>>s = 'abcdefghijklmn'
>>>s[0:4] 包括起始值(元素)不包括结束值,默认步进值为1 ,
'abcd'
>>>s[0:6:2] 设置步进值为2 提取
'ace'
>>>s[4:] 当一边没有指定时,就取到边界
'efghijklmn'
>>>s[:4]
'abcd'
>>>s[1:-1] 从结尾提取,下标从-1开始
'bcdefghijklm'
>>>s[-8:]
'ghijklmn'
>>>s[:-8]
'abcdef'
>>>s[:] 表示全选
'abcdefghijklmn'
>>>s[::-1] 使其中的元素 倒叙排列
'nmlkjihgfedcba'
分割
字符串分割返回一个列表对象,将目标内容连接。
>>>t='I love you more than I can say'
>>>t.split(' ') 按空格切割
['I', 'love', 'you', 'more', 'than', 'I', 'can', 'say']
>>>t.split('o') 按字符o切割
['I l','ve you m','re than I can say']
>>>t.split(' ',3) 按空格切割 并指定切割次数,3次
['I','love','you','more than I can say']
>>>t.rsplit(' ',2) 从右面开始切割,切割2次
['I love you more than I','can','say']
>>>l='''江畔何人初见月
江月何年初照人
人生代代无穷已
江月年年望相似'''
>>>l.splitlines() splitlines() 按行切割
['江畔何人初见月','江月何年初照人','人生代代无穷已','江月年年望相似']
查找
从一个字符串s中查找另一个字符串或字符第一次出现的下标位置,找不到返回 -1.
>>>s='abcdedjcjdlslk'
>>>s1='abc'
>>>s.find(s1) 返回第一次出现abc的位置下标0
0
>>>s.find('j') 返回第一次出现 j 的位置下标6
6
>>>s.find('j',2) 从下标位置2开始查找,找到返回第一次出现的位置下标
6
>>>s.find('j',7) 从下标位置7开始查找
8
>>>s.find('j',10) 从下标位置10开始查找,没有返回-1
-1
- 赋值
#!/usr/bin/python3
s = 'abcdef'
s = list(s)
s[1] = 'E'
s = ''.join(s)
print s
s = s[0:1]+ 'E' +s[2:]
print s
s = s.replace('b','E')
print s
s = 'aEcdef'
print s
- 截取
mystring = '12345abcde'
print('截取第1位到第5位的字符:', mystring[0:5]) # 截取第1位到第5位的字符
print('截取字符串的全部字符', mystring[:]) # 截取字符串的全部字符
print('截取第5个字符到结尾:', mystring[5:]) # 截取第6个字符到结尾
print('截取从头开始到倒数第3个字符之前:', mystring[:-3]) # 截取从头开始到倒数第3个字符之前
print('截取第5个字符;', mystring[4]) # 截取第5个字符
print('截取倒数第3个字符:', mystring[-3]) # 截取倒数第3个字符
print('截取倒数第3位与倒数第1位之前的字符;', mystring[-3:-1]) # 截取倒数第3位与倒数第1位之前的字符
print('截取倒数第三位到结尾:', mystring[-3:]) # 截取倒数第三位到结尾
print('逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1:', mystring[:-5:-1]) # 逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1
print('逆序截取从倒数第1个到倒数第5个,步长为1,默认begin为0:', mystring[:-5:1]) # 逆序截取从倒数第5个到倒数第2个,步长为1,默认begin为0
print('逆序截取全部字符:', mystring[::-1]) # 逆序输出全部字符
print('逆序截取倒数第3个到倒数第10个,步长为3:', mystring[-3:-10:-3]) #逆序截取倒数第3个到倒数第10个,步长为3
输出结果:
截取第1位到第5位的字符: 12345
截取字符串的全部字符 12345abcde
截取第5个字符到结尾: abcde
截取从头开始到倒数第3个字符之前: 12345ab
截取第5个字符; 5
截取倒数第3个字符: c
截取倒数第3位与倒数第1位之前的字符; cd
截取倒数第三位到结尾: cde
逆序截取从倒数第1个到倒数第5个,步长为-1,默认begin为-1: edcb
逆序截取从倒数第1个到倒数第5个,步长为1,默认begin为0: 12345
逆序截取全部字符: edcba54321
逆序截取倒数第3个到倒数第10个,步长为3: c52
Process finished with exit code 0