Python的字符串
来源:互联网 发布:淘宝屏蔽关键词 编辑:程序博客网 时间:2024/06/13 00:50
原文地址
Python有内置的字符串类型, 内置的字符串是序列(Sequence), 是不可变的序列, 所以不可变序列通用的方法对其都适用.
对Python2, 内置的字符串类型有str和unicode,
Python2
'abc' 是str, u'中国123' 是unicode
# Python2.7>>> type('abc')<type 'str'>>>> type(u'中国123')<type 'unicode'>
如果我们使用Python2, 应该都尽量使用unicode,就算是纯英文的.
Python3
但在Python3中, 没有预定义unicode类型了,内置字符串就是str, 但是str中的字符都是unicode编码的
#Python3.3>>> type(u'中国')<class 'str'>>>> type('abc')<class 'str'>>>> type(str)<class 'type'>>>> type(unicode)NameError: name 'unicode' is not defined
下面讨论一些Python内置字符串常用的方法, Python2中这些方法对str和unicode基本都是一样的, 没有讨论到的去文档查阅就行,基本上需要的功能都有方法实现.
字符串分隔, split
str.split()接受分隔字符串, 返回分隔后的一个list
>>> s = 'wangyu@lvye.cn'>>> s.split('@')['wangyu', 'lvye.cn']
如果同一个分隔符连续多个存在,则在返回结果中会有空字符串
>>> s = 'wangyu@@@@lvye.cn'>>> s.split('@')['wangyu', '', '', '', 'lvye.cn']
4个连续的@产生了3个空串
当分隔字符串是多字符的,必须是全匹配
>>> s = 'abc<>cba'>>> s.split('<>')['abc', 'cba']
一个反面例子
>>> s = 'abc<>cba%$acb'>>> s.split('<>$')['abc<>cba%$acb']
str.split()也可以不接受参数,这时候是使用空格做分隔,且不产生空串,如果开头和结尾有空格,也会被忽略掉
>>> s = ' we are the champion'>>> s.split()['we', 'are', 'the', 'champion']
子串替换
str.replace(old, new [, count])
replace把old替换成new,并且可以指定替换个数, 而且函数返回一个copy,不会影响原来的str对象.
>>> s = 'he is nate, nate is his name'>>> s.replace('nate', 'sky')'he is sky, sky is his name'>>> s'he is nate, nate is his name'
子串查找
字串查找用find()或index(), 其中index()是序列通用的方法
不同的是若没找到find()返回-1, index()抛出异常ValueError, 找到返回字串索引.
find()和index()的语法相同
str.find(substr [, start [, end]])
普通使用
>>> s='we are are the champion'>>> s.find('ar')3
加上范围
>>> s='we are are the champion'>>> s.find('ar', 4)7
注意,如果只是想知道一个字符串是否包含一个子串,使用 in
>>> s = 'we are the champion'>>> 'are' in sTrue
字符串的strip
同样的strip会copy一份原来的字串进行处理.
不加任何参数,去除左右的空格
>>> s = ' www.lvye.cn '>>> s.strip()'www.lvye.cn'
带上参数
>>> s.strip('wcn. ')'lvye'
注意带上参数时,空格要显示指定.
strip还可以去除两端的换行符
字符串其它的方法
- isalpha() 是否都是字母
- isdigit() 是否都是数字
- upper() 都转化为大写
Python str的方法,Python文档中很全.
-------------------------
参考:
http://docs.python.org/3/library/stdtypes.html#str Python文档
- Python的字符串
- Python字符串的替换
- python字符串的格式化
- python字符串的Intern
- python字符串的内容
- python的字符串处理
- python的字符串处理
- Python的字符串索引
- python 字符串的trim
- Python 的字符串处理
- Python的字符串操作
- Python的字符串格式化
- Python的字符串格式化
- python的字符串
- [python]字符串的排序
- Python的字符串
- python的文档字符串
- Python 字符串的操作
- No source template was found from input data:<{:guid=> [clone vm via /api/provision_requests]
- html5 中的 wbe storage
- socket编程中write、read和send、recv之间的区别
- 数据结构之图的十字链表
- Device Tree(二):基本概念
- Python的字符串
- oracle归档
- [RK3288][Android6.0] 控制总线通用接口regmap小结
- Android研究-Android的init启动到launcher启动-主要分析zygote服务
- 监测防护SambaCry CVE-2017-7494漏洞
- Launcher 记录自定义桌面
- java 枚举类型的使用
- 快速排序算法原理及实现(单轴快速排序、三向切分快速排序、双轴快速排序)
- jQuery中ajax的4种常用请求方式