Python之数据结构:字符串中的方法

一、过滤字符串
1、strip()
(1)去掉行收尾不可见字符
a = ' wejifrow '
print a
print a.strip()
结果:
wejifrow
wejifrow
(2)strip([chars])
a = '**weji**frow**'
print a.strip('*')
结果:
weji**frow
(3)lstrip([chars]) rstrip([chars])
s='* dwiefi **'
print s.lstrip('*')
print s.rstrip('*')
结果:
dwiefi **
* dwiefi
 
str1=r'\n\t andwf\n\t '
print str1
print str1.strip()
print str1.strip('\tf\n ')
结果:
\n\t andwf\n\t
\n\t andwf\n\t
\n\t andwf\n\t
 
二、大小写互换
1、ASCII值来换 ord chr
2、
s1.lower() 大写转换为小写
s2.upper() 小写转换成大写
s3.swapcase() 大小写互换
3、
句子的第一个单词的首字母转换为大写 s4.capitalize()
句子的所有单词首字母都需要大写(模块方法):
import string
string.capwords(s5)
或者s5.title()
 
4、string模块
import string
string.uppercase
string.lowercase
 
三、字符串对齐
1、s.ljust(width,[fillchar]) 左对齐
s.rjust(width) 右对齐
width定义长度
fillchar:使用什么字符来补齐
s='123abc'
print s.ljust(10,'*')
结果:123abc****
 
print 'lilili'.ljust(15),'female'.ljust(10),'23'.ljust(5),'zhouzhou'.ljust(15)
与print '%-15s %-10s %-5s %-15s'%('lili','女','23','zhouzhou')效果一样
2、中间对齐 s.centerwidth,[fillchar])
print s.center(15,'*')
结果:*****123abc****
 
3、s.zfill(width)
s.zfill(10) ==s.rjust(10,'0')
结果:0000123abc
 
四、搜索
1、s.find(substr,[start,[end]])
substr在s字符中出现的第一个的下标
start end:从s字符串的下标为start的位置开始,下标为end-1的位置结束
没有找到 返回 -1
 
2、s.index(substr,[start,[end]])
说明:[start,[end]] 有end的情况,必须有start
find与index方法的区别:
find:返回-1
index:如果没有找到,会抛出异常:ValueError: substring not found
使用会抛异常的 做异常分支处理 (APP崩溃经常是没有捕获这类异常引起的)
try:
pass
except:
 
3、s.rfind(subStr,[start[,end]])
从字符串的右侧进行查找
s='boy boy'
print s.find('boy')
print s.rfind('boy')
结果:
0
4
 
4、s.rindex(subStr,[start[,end]])
s='boy boy'
print s.rindex('boy')
结果:
4
 
五、字符串替换
1、s.replace(oldStr,newStr,[count])
使用newStr替换oldStr。
count:替换多少次
没有返回值,需要s=s.replace()
 
2、s.expandtabs([tabsize])
把制表符替换成空格
tabsize:默认一个tab键替换为8个空格, 把一个tab键替换成tabsize个空格
 
六、字符串切割
1、s.split([sep[,maxsplit]])
sep:以s字符串中的seq字符串来分隔
maxsplit:从左往右分隔的次数
 
2、s.splitlines([keepends])
分隔行,以换行符(\n)
keepends=true,保留换行符。默认值为False
 
3、s.rsplit([sep[,maxsplit]])从字符串右侧开始切割
 
七、列表转换为字符串
1、s.join()由字符串组成的列表拼接成字符串
 
2、s.startwith(subStr)
字符串s是否以subStr子串开头,返回值 true or false
s.endswith(subStr)
字符串s是否以subStr子串结尾,返回值 true or false
 
3、s1 in s
判断s1子串是否在字符串s中
 
八、判断字符串
1、s.isalpha()
s字符串是否都是有字母组成,并且至少由一个字符组成
 
2、s.isalnum()
s字符串是由字母或者数字组成,并且至少由一个字符组成
 
3、s.isdigit()
s字符串中的字符都是由数字组成的,并且至少由一个字符组成
‘12.23’.isdigit() 结果是FALSE
 
4、s.isspace()
判断s字符串是否由空格组成,并且至少由一个字符组成
只要是空白的,就认为是空格
 
5、s.islower()
判断字符串s中的字母(可以包含其他的字符)是否都是小写,并且至少有一个字母
TRUE or Flase
‘a1’.islower() 结果为True
 
6、s.isupper()
判断字符串s中的字母(可以包含其他的字符)是否都是大写,并且至少有一个字母
 
7、s.istitle()
判断字符串s中的所有单词的首字母是大写,其他字母为小写,并且至少有一个字母
 
8、
import string
string.maketrans(from,to)
映射表,做编码和解码的时候使用
例如:
mapTable=string.maketrans(‘123’,‘abc’)
s='111abc123abc‘
print s.translate(mapTable)
结果:
aaaabcabcabc
 
九、数字类型的转换
int()
float()
long()
import string
1、string.atoi(s,a) 还可以转换八进制,十六进制
a:代表的是进制数
s='18'
print int(s)
print string.atoi(s)
结果:
18
18
print string.atoi('011',8) 9
print string.atoi('0x11',16) 17
 
2、string.atol('11') 11
3、string.atof('1.23456') 1.23456
 
十、
1、ord() 字母转换为对应的ASCII值
2、chr() 把数字转换成对应的字符
3、
s.encode([encoding[,errors]]) 编码函数 把Unicode编码为需要的
encoding:编码的类型
errors:默认值’strict‘。ignore(忽略)
s.decode() 解码函数 解码为Unicode格式
 
 
posted @ 2017-06-12 18:56  emily-qin  Views(426)  Comments(0Edit  收藏  举报