您的位置:首页 > 编程语言 > Python开发

python字符串

2015-10-29 10:38 513 查看
8.字符串的处理

1.in和 not in 来检查一个字符串是否是另外一个字符串的一部分
2.知道字符串出现的位置,使用find()和index()
3.判定字符串是否以某一特定子串开始,或是以某一特定子串结束,使用startwith()和endswith()
4.如果不带任何参数,lstrip().rstrip()和strip()分别是用来删除前导空白,结尾空白和前后空白的方法。空白包括tab,空格,回车和换行.作为一个新字符串返回
5.upper()返回一个字符串,该字符串是大写的原始字符串的大写.lower()方法返回一个字符串,该字符串是小写的原始字符串
6.split()方法是把希望作为分隔符的分割的字符串作为参数传递给它,分隔符是单个字符,例如逗号或符号.如果只是想在指定定界符第一次出现字符“n”的位置对字符串进行分割,split()使用成为max_split的第二个参数.
当一个整数值作为max_split被传递进来,split()仅对字符串分割由max_split指定的次数
7.splitlines()返回一个由字符串中每一行所组成的列表,并且保存为一组.
8.将多个字符串连接到一起,join()
9.replace()有两个参数,分别是被替换的字符串以及替换字符串.
10.unicode数字和字符映射集 计算机屏幕上显示字符时,计算机将其作为数字在内部进行处理

python join 和 split方法的使用,join用来连接字符串,split恰好相反,拆分字符串的。

1.join用法示例
>>>li = ['my','name','is','bob']
>>>' '.join(li)
'my name is bob'
>>>'_'.join(li)
'my_name_is_bob'
>>> s = ['my','name','is','bob']
>>> ' '.join(s)
'my name is bob'
>>> '..'.join(s)
'my..name..is..bob'

2.split用法示例
>>> b = 'my..name..is..bob'
>>> b.split()
['my..name..is..bob']
>>> b.split("..")
['my', 'name', 'is', 'bob']
>>> b.split("..",0)
['my..name..is..bob']
>>> b.split("..",1)
['my', 'name..is..bob']
>>> b.split("..",2)
['my', 'name', 'is..bob']
>>> b.split("..",-1)
['my', 'name', 'is', 'bob']
可以看出 b.split("..",-1)等价于b.split("..")

4.python 判断字符串中字符类型的常用方法

s为字符串
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符
判断是整数还是浮点数

a=123
b=123.123
>>>isinstance(a,int)
True
>>>isinstance(b,float)
True
>>>isinstance(b,int)
False


字符串的截取和替换常用方法

一:字符串的截取
python的字符串是有序集合,我们可以通过索引来提取想要获取的字符,可以把python的字符串也做为字符串的列表就更好理解
python的字串列表有2种取值顺序:
第一种是从左到右索引默认0开始的,最大范围是字符串长度少1
s = 'ilovepython'
s[0]的结果是i
第二种是从右到左索引默认-1开始的,最大范围是字符串开头
s = 'ilovepython'
s[-1]的结果是n

上面这个是取得一个字符,如果你的实际要取得一断字符的话,可以用到python 字符串截取功能,比如:

s = 'ilovepython'
s[1:5]的结果是love

当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界,比如上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p

多举几个里例子让大家更明白点:
s[:3]
结果是'ilo',省掉:左边的话,默然左边开始的索引值是0,其实这个表达式和s[0:3]的意思是一样的。
s[:-1]
结果是:'ilovepytho' 就是左边开始的索引值是0,最大范围到字符串里的最后一个字符但是不包括最后一个字符。
s[:]
结果是:'ilovepython' 获取了从偏移0到末尾之间的元素,这是python 字符串拷贝

二:字符串的替换
python 字符串替换是python操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法。
python 字符串替换可以用2种方法实现:
1、用字符串本身的方法
2、用正则来替换字符串
下面用个例子来实验下:
a = 'hello word'
我把a字符串里的word替换为python
1、用字符串本身的replace方法
a.replace('word','python')
输出的结果是hello python

2、用正则表达式来完成替换:

import re
strinfo = re.compile('word')
b = strinfo.sub('python',a)
print b
输出的结果也是hello python

python中用string.maketrans和translate巧妙替换字符串

将nginx日志中字符串 [2013-07-03T00:29:40-05:00] HTTP 格式化为:"2013-07-03 00:29:40-05:00"

整条日志如下:
92.82.22.46 - - [2013-07-03T00:29:40-05:00] "GET /images/mask_bg.png HTTP/1.1" 200 195 "http://www.chlinux.net/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-"
将[2013-07-03T00:29:40-05:00] 替换成为:"2013-07-03 00:29:40-05:00"

把[]换成"",然后把T替换成空格

>>> s='''92.82.22.46 - - [2013-07-03T00:29:40-05:00] "GET /images/mask_bg.png HTTP/1.1" 200 195 "http://www.chlinux.net/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-"'''
>>> table = string.maketrans('[]','""')
>>> s.translate(table)
'92.82.22.46 - - "2013-07-03T00:29:40-05:00" "GET /images/mask_bg.png HTTP/1.1" 200 195 "http://www.chlinux.net/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-"'
>>> s.translate(table).replace('T', ' ',1)#替换掉第一个T为空格
'92.82.22.46 - - "2013-07-03 00:29:40-05:00" "GET /images/mask_bg.png HTTP/1.1" 200 195 "http://www.chlinux.net/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-"'
也可以这样:
>>> table = re.sub('\[|\]','"',s).replace('T', ' ',1)
>>>print table
'92.82.22.46 - - "2013-07-03 00:29:40-05:00" "GET /images/mask_bg.png HTTP/1.1" 200 195 "http://www.chlinux.net/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-"'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: