引言 |
字符串作为一种常见的数据类型,在日常中我们面临各式各样的字符串处理问题,那么,这就要求我们必须掌握一些常用的字符串处理函数。本文尽量囊括常用的字符串处理函数,此文也作为个人的小总结。
Python中常用的字符串处理函数 |
find()
- 功能:
检测字符串是否包含特定字符,如果包含,则返回开始的索引;否则,返回-1。 - 示例:
## find()函数
str = 'hello world'
# 'wo'在字符串中
print( str.find('wo') )
# 'wc'不在字符串中
print( str.find('wc') )
## 输出:
## 6
## -1
index()
- 功能:
检测字符串是否包含指定字符,如果包含,则返回开始的索引值;否则,提示错误。 - 示例:
## index()函数
str = 'hello world'
# 'wo'在字符串中
print( str.index('wo') )
# 'wc'不在字符串中,程序报错ValueError,终止运行
print( str.index('wc') )
## 输出:
## 6
## ValueError: substring not found
count()
- 功能:
返回str1在string中指定索引范围内[start, end)出现的次数。 - 示例:
## count()函数
str = 'hello world'
# 统计str中全部字母l的个数
print( str.count('l') )
# 统计str中从第5+1个字母到最后一个字母中,字母l的个数
print( str.count('l', 5, len(str)) )
## 输出:
## 3
## 1
replace()
- 语法:
str1.replace(str2, count)
- 功能:
将str1中的str1替换成str2,如果指定count,则不超过count次; - 示例:
## replace()函数
print('=*'*10, 'replace()函数', '=*'*10)
str = 'hello world hello world'
str1 = 'world'
str2 = 'waltsmith'
# 将所有的str1替换为str2
print( str.replace(str1, str2) )
# 只将前1个str1替换为str2
print( str.replace(str1, str2, 1) )
## 输出:
## hello waltsmith hello waltsmith
## hello waltsmith hello world
split()
- 语法:
str.split('分界符', maxSplit)
maxSplit默认值为-1,表示根据定界符分割所有能分割的;
返回值为列表; - 功能:
如果 maxsplit有指定值,则仅分割 maxsplit 个子字符串; - 示例:
## split()函数
str3 = 'I am a good boy!'
# 以空格分割字符串,分界符默认为空格
print(str3.split(' ', 3))
# 以字母o作为分界符,指定最大分割为2,将返回最大分割+1个元素的列表
print(str3.split('o', 2))
## 输出:
## ['I', 'am', 'a', 'good boy!']
## ['I am a g', '', 'd boy!']
capitalize()
- 语法:
str.capitalize()
无参数; - 功能:
将字符串的首字母大写,其余字母全部小写 - 示例:
## capitalize()函数
str4 = 'I aM waLt smith'
# 字符串的首字母大写,其余字母全部小写
print(str4.capitalize())
## 输出:
## I am walt smith
title()
- 语法:
str.title()
无参数; - 功能:
将字符串中的所有单词的首字母大写,其余字母全部小写;
值得注意的是,这里单词的区分是以任何标点符号区分的,即,标点符号的前后都是一个独立的单词,字符串最后一个标点除外哦。详细看示例哈 - 示例:
## title()函数
# 正常字符串的转换
str5 = "I am walt smith!"
print(str5.title())
## 输出:
## I Am Walt Smith!
# 字符中包含标点符号
str6 = "I'm walt-sMith!"
print(str6.title())
## 输出:
## I'M Walt-Smith!
注意:
也许你也看到了,”I’m walt-sMith!”转换后,“I’M Walt-Smith!”这句话并不是我们想要的结果。这个呢,是时候秀一下正则表达式了。
以下示例通过正则表达式实现:”I’m walt-sMith!”转换为“I’m Walt-Smith!”
- title()修正示例:
## 修正title()
import re
def titlecase(s):
return re.sub(r"[A-Za-z]+('[A-Za-z]+)?",
lambda mo: mo.group(0)[0].upper() +
mo.group(0)[1:].lower(), s)
str7 = "I'm walt's friend!"
print(titlecase(str7))
## 输出:
## I'm Walt's Friend!
startswith()
- 语法:
str.startswith(str1)
- 功能:
检查字符串str是否 以字符串str1开头,若是,则返回True;否则,返回False; - 示例:
## startswith()函数
str8 = "Hello Walt Smith"
print(str8.startswith("Hello"))
## 输出:
## True
lower()
- 语法:
str.lower()
无参数; - 功能:
将字符串的所有字母转换为小写; - 示例:
## lower()函数
print('=*'*10, 'lower()函数', '=*'*10)
str10 = "Hello Walt Smith"
print(str10.lower())
## 输出:
## hello walt smith
upper()
- 语法:
str.upper()
无参数; - 功能:
将字符串的所有字母转换为大写; - 示例:
## upper()函数
str10 = "Hello Walt Smith"
print(str10.upper())
## 输出:
## HELLO WALT SMITH
endswith()
- 语法:
str.endswith(str1)
- 功能:
检查字符串str是否 以字符串str1结尾,若是,则返回True;否则,返回False; - 示例:
## endswith()函数
str9 = "Hello Walt Smith"
print(str9.endswith("Smith"))
## 输出:
## True
ljust()
- 语法:
str.ljust(len)
- 功能:
将字符串左对齐,并使用空格填充至指定长度len; - 示例:
## ljust()函数
str10 = "Hello Walt Smith"
print("str10的原长度为%d" % (len(str10)))
print("str10处理后的长度为%d" % (len(str10.ljust(20))))
## 输出:
## str10的原长度为16
## str10处理后的长度为20
rjust()
- 语法:
str.rjust(len)
- 功能:
将字符串右对齐,并使用空格填充至指定长度len; - 示例:
## rjust()函数
str11 = "Hello Walt Smith"
print(str11.rjust(20))
print("str11的原长度为%d" % (len(str11)))
print("str11处理后的长度为%d" % (len(str11.ljust(20))))
## 输出:
## ☐☐☐☐Hello Walt Smith
## str11的原长度为16
## str11处理后的长度为20
center()
- 语法:
str.center(len)
- 功能:
将字符串居中,并使用空格填充至指定长度len; - 示例:
## center()函数
str12 = "Hello Walt Smith"
print(str12.center(20))
print("st12的原长度为%d" % (len(str12)))
print("str12处理后的长度为%d" % (len(str12.center(20))))
## 输出:
## ☐☐Hello Walt Smith☐☐
## str12的原长度为16
## str12处理后的长度为20
lstrip()
- 语法:
str.lstrip()
- 功能:
去掉字符串左边的空白字符; - 示例:
## lstrip()函数
str13 = " Hello Walt Smith "
print(str13.lstrip())
## 输出:
## Hello Walt Smith☐☐☐
rstrip()
- 语法:
str.rstrip()
- 功能:
去掉字符串右边的空白字符; - 示例:
## rstrip()函数
str13 = " Hello Walt Smith "
print(str13.rstrip())
## 输出:
## ☐☐☐Hello Walt Smith
strip()
- 语法:
str.strip()
- 功能:
去掉字符串左右两边的空白字符; - 示例:
## strip()函数
str13 = " Hello Walt Smith "
print(str13.strip())
## 输出:
## Hello Walt Smith
partition()
- 语法:
str.partition(str1)
- 功能:
根据str中的第一个str1,将字符串str分割为str1之前,str1和str1之后三个部分;若str1不存在,则将str作为第一部分,后面两个元素为空;返回元组; - 示例:
## partition()函数
str14 = "Are you believe in yourself?"
# "yourself"在字符串中
print(str14.partition("yourself"))
# "you"在字符串中有两个
print(str14.partition("you"))
# "walt"不在字符串中
print(str14.partition("walt"))
## 输出:
## ('Are you believe in ', 'yourself', '?')
## ('Are ', 'you', ' believe in yourself?')
## ('Are you believe in yourself?', '', '')
join()
- 语法:
str.join(iterable)
- 功能:
将iterable中每两个相邻元素中间插入字符串str,返回形成的新的字符串; - 示例:
## join()函数
str15 = "walt"
print(str15.join("ABC"))
iterable = ['YOU', 'THEY', 'WE']
print(str15.join(iterable))
## 输出:
## AwaltBwaltC
## YOUwaltTHEYwaltWE
isspace()
- 语法:
str.isspace()
无参数; - 功能:
如果字符串str中只包含空格,则返回True;否则,返回False; - 示例:
## isspace()函数
str16 = " t "
print(str16.isspace())
## 输出:
## False
isdigit()
- 语法:
str.isdigit()
无参数; - 功能:
如果字符串str中只包含数字,则返回True;否则,返回False; - 示例:
## isdigit()函数
str16 = "14250"
print(str16.isdigit())
## 输出:
## True
isalpha()
- 语法:
str.isalpha()
无参数; - 功能:
如果字符串str中只包含字母,则返回True;否则,返回False; - 示例:
## isalpha()函数
str17 = "HardWorking"
print(str17.isalpha())
## 输出:
## True
===================未完待续==============
结语 |
能力有限,非常欢迎指错、补充。么么哒♥♥♥