Python3中的字符串相关操作
Python3的字符串操作相关函数详解
字符串内建函数
1. capitalize()
将字符串中的第一个字符转换成大写,其他字母变成小写.例:
>>> "hello World".capitalize() 'Hello world'
2. center(width [,fillchar])
该函数返回一串字符串.width指定该字符串的宽度,中间是原字符串,两边用指定字符填充.fillchar为可选参数,默认空格作为填充字符.例:
>>> "Hello World".center(40, '*') '**************Hello World***************'
3. count( str [,beg] [,end] )
返回str在字符串里出现的次数,可选参数beg是开始的位置, end是结束的位置.例:
>>> "Hello World".count('o')
2
4. encode( [encoding] [,errors])
对字符串进行编码,返回一个byte对象
可以指定encoding编码格式,也可以指定对编码错误所进行的操纵.errors值默认 'strict',意为编码错误的话会引起一个unicode编码异常.例:
>>> "Hello World".encode('utf-8', 'strict') b'Hello World'
说完编码再说说解码,解码是byte对象中的函数,即 decode([encoding] [,errors]).参数跟encode一样.例:
>>> b'Hello World'.decode('utf-8')
'Hello World'
5. endswith(suffix [,beg] [,end])
检测字符串是否以特定后缀(suffix参数)结尾,可选检测字符串开始和结束的位置.例:
>>> "hello.jpg".endswith('.jpg') True
6. expandtabs([tabsize])
设定tabsize的大小(默认为8),用空格数代替tab符号'\t'.例:
>>> "Hello\tWorld".expandtabs(8) 'Hello World'
这里tab大小为8,'Hello'字符站了5个,\t就转换成了3个空格.
7. find(str, [,beg], [end])
检测str是否在字符串內,在就返回该字符串的位置,否则返回-1.例:
>>> "Hello World".find('ld') 9
8. index(str [,beg] [,end])
跟find一样,对指定字符串进行索引,不过没有找到对应字符串会报错.例:
>>> "Hello World".index('ld') 9
9. isalnum()
判断该字符串是否全是字符与数字组合,如果是,返回True,否则返回False.例如:
>>> "HelloWorld33".isalnum() True
注意:如果包含空格或其他特殊符号,转义字符等,结果都为False.
10. isalpha()
判断字符串是否全是字符组合(包括汉字), 如果是,返回True, 否则返回False.例如:
>>> "HelloWorld".isalpha() True
11. isdigit()
判断字符串是否只包含数字, 并返回True或False.例如:
>>> '23'.isdigit() True
12. islower()
判断字符串中的英文字符是否都为小写字符并返回布尔值.例:
>>> "hello world".islower() True
13. isnumeric()
判断字符串是否只包含数字字符并返回布尔值,数字可以是罗马数字,汉字数字,Unicode数字等, 例:
>>> "一二三".isnumeric() True
14. isspace()
判断字符串是否只包含空白并返回布尔值.例:
>>> "\t\n".isspace() True
'\t' 表示一个tab的空白, '\n' 表示换行.这个字符串仍然是空白的
15. istitle()
判断字符串是否是标题,即字符串开头与每个空白后的第一个字符是大写状态.例:
>>> "Hello World".istitle() True
16. isupper()
判断字符串中的英文字符是否都是大写并返回布尔值.例:
>>> "HELLO WORLD".isupper() True
17. join(seq)
以该字符串作为分隔符将seq分隔组成一个新的字符串并返回.例:
>>> " abcd ".join("HELLO")
'H abcd E abcd L abcd L abcd O'
18. ljust(width [,fillchar])
指定该字符串的宽度,并左对齐,右边用指定字符填充,默认空格.例:
>>> "Hello World".ljust(50, '*') 'Hello World***************************************'
19. lower()
将字符串中的字符都转换成小写.例:
>>> "Hello World".lower() 'hello world'
20. lstrip([str])
去掉字符串左边的空格或指定字符, 例:
>>> " Hello World".lstrip() 'Hello World'
21. replace( old, new [, max])
将字符串中old替换成new, 并且可以指定替换最大次数.例:
>>> "Hello World".replace('l', '3', 2) 'He33o World'
22. rfind(str [,beg] [,end])
跟find一样,返回指定字符的索引, 不过是从右边向左开始找的. 例:
>>> "Hello World".rfind('o') 7
23. rindex(str [,beg] [,end])
同index,不过是从右向左查找索引,未找到会抛出异常.例:
>>> "Hello World".rindex('or') 7
24. rjust(width [,fillchar])
返回一个指定宽度,原字符串右对齐,左边用空格或指定字符填充的新字符串. 例:
>>> "Hello World".rjust(40, '*') '*****************************Hello World'
25. rstrip()
删除字符串末尾的空格或指定字符. 例:
>>> "Hello World5555555".rstrip('5') 'Hello World'
26. split(str [, num])
以指定str字符为分隔符, 可指定最多分隔num次. 并返回一个list. 例:
>>> "Hello World".split('l', 2) ['He', '', 'o World']
27. splitlines( [keepends])
按 '\r', '\n' 来分隔字符串并返回一个list列表.keepend的值为True或False, 表示是否将 '\n'作为分隔符
>>> 'Hello \r World \n Hello World'.splitlines() ['Hello ', ' World ', ' Hello World']
28. startswith(substr [,beg] [,end])
检测字符串是否以substr开头, 并返回一个布尔值. 例:
>>> "Hello World".startswith('H') True
29. strip([chars])
在字符串上同时执行了lstrip()跟rstrip(), 删除字符串开头或结尾指定的字符.例:
>>> "hahahahaHello Worldhahahaha".strip('ha') 'Hello World'
30. swapcase()
将该字符串的大小转换成小写, 小写转化成大写. 例:
>>> "Hello World".swapcase() 'hELLO wORLD'
31. title()
将该字符串标题化并返回, 就是字符串开头与每个空白后的第一个字符转换成大写, 其余字符转换成小写. 例:
>>> "helLo, worLD".title() 'Hello, World'
32. translate(table [, delechars])
使用映射表翻译该字符串, 要过滤掉的字符放在delechar里 如何创建映射表呢?
str.maketrans(intab, outtab)
创建一个字符映射表, 相当于字典翻译一样,第一个参数是要替换组成的字符串, 第二个参数是相应的映射字符串.例如
>>> intab, outtab = "abced", "12345"
>>> 'Hello World'.translate(str.maketrans(intab, outtab))
'H4llo Worl5'
注意:intab跟outtab的参数长度要一致,不然会报错
33. upper()
转换字符串中的小写字母为大写. 例:
>>> "Hello World".upper() 'HELLO WORLD'
34.zfill(width)
返回一个指定长度的字符串, 原字符串右对齐, 左边以0填充. 例:
>>> "Hello World".zfill(40) '00000000000000000000000000000Hello World'
35. isdecimal()
判断字符串是否只包含十进制字符并返回布尔值. 例:
>>> "2333".isdecimal() True
该方法仅用于unicode对象
Python内置相关可用函数
1. len(str)
该函数可用于计算字符串的长度. 例:
>>> len("Hello World") 11
2. min(str)
返回字符串中最小的字符.例:
>>> min("helloworld") 'd'
3. max(str)
返回字符串中最大的字符, 例:
>>> max("helloworld") 'w'
字符串格式化的几种方式
上面找不到format,这里专门放最后说一下格式化的几种方式.
1. %
这种方法是从c语言带过来的,用%d,%s,%f 等特殊字符进行格式化, 例:
>>> "%d + %d = %d" % (2, 3, 2+3) '2 + 3 = 5'
2. format(*args)
在字符串內加 '{}',可以进行格式化替换.并且"{}"內可指定格式化的序号.例:
>>> "{}, {}".format('Hello', 'World') 'Hello, World' >>> "{1}, {0}".format('Hello', 'World') 'World, Hello'
3. fstring
为了更加简便, python在3.6版本引进了fstring.
在字符串前面加上一个f,并在字符串內加入"{var_name}"就能完成格式化. var_name表示变量名.例:
>>> a, b = 10, 20 >>> f"{a} * {b} = {a*b}" '10 * 20 = 200'