5.10 拆分字符串(返回元组) partition()、rpartition()
1、partition()
方法
partition() 方法搜索指定的字符串,并将该字符串拆分为包含三个元素的元组。
第一个元素包含指定字符串之前的部分,第二个元素包含指定的字符串,第三个元素包含字符串后面的部分。
注释:此方法搜索指定字符串的第一个匹配项。
语法
string.partition(value)
参数值
参数 | 描述 |
value | 必需。要检索的字符串。 |
实例
- 搜索单词 “bananas”,并返回包含三个元素的元组:
- 1 - “匹配”之前的所有内容
- 2 - “匹配”
- 3 - “匹配”之后的所有内容
txt = "I could eat bananas all day" x = txt.partition("bananas") print(x)
('I could eat ', 'bananas', ' all day')
- 如果找不到指定的值,则 partition() 方法将返回一个元组,其中包含:1 - 整个字符串,2 - 空字符串,3 - 空字符串:
txt = "I could eat bananas all day" x = txt.partition("apples") print(x)
('I could eat bananas all day', '', '')
2、rpartition()
方法
rpartition() 方法搜索指定字符串的最后一次出现,并将该字符串拆分为包含三个元素的元组。
第一个元素包含指定字符串之前的部分,第二个元素包含指定的字符串,第三个元素包含字符串之后的部分。
语法
string.rpartition(value)
参数值
参数 | 描述 |
value | 必需。要检索的字符串。 |
实例
- 搜索单词 “bananas” 的最后一次出现,并返回包含三个元素的元组:
- 1 - “匹配”之前的所有内容
- 2 - “匹配”
- 3 - “匹配”之后的所有内容
txt = "I could eat bananas all day, bananas are my favorite fruit" x = txt.rpartition("bananas") print(x)
('I could eat bananas all day, ', 'bananas', ' are my favorite fruit')
- 如果找不到指定的值,则 rpartition() 方法将返回一个元组,其中包含:1 - 整个字符串,2 - 一个空字符串,3 - 一个空字符串:
txt = "I could eat bananas all day, bananas are my favorite fruit" x = txt.rpartition("apples") print(x)
('', '', 'I could eat bananas all day, bananas are my favorite fruit')
5.11 字符串转换 maketrans()、translate()
1、maketrans()
方法
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
两个字符串的长度必须相同,为一一对应的关系。
语法
string.maketrans(x[, y[, z]])
参数值
参数 | 描述 |
x | 必需,字符串中要替代的字符组成的字符串。 |
y | 可选,相应的映射字符的字符串。 |
z | 可选,要删除的字符。 |
2、translate()
方法
translate() 返回被转换的字符串。
实例
- 字母 B 替换为 b
txt = "www.Baidu.com" url = txt.maketrans('B', 'b') print(txt.translate(url))
www.baidu.com
- 使用字符串设置要替换的字符,一一对应
x = "aeiou" y = "12345" trans = str.maketrans(x, y) str1 = "this is a string" print(str1.translate(trans))
th3s 3s 1 str3ng
- 设置要删除的字符参数:
txt = "baidu z alibaba Z tencent" x = "bat" y = "BAT" z = "zZ" # 设置删除的字符 trans = txt.maketrans(x, y, z) print(txt.translate(trans)) print(trans)
BAidu AliBABA TencenT {98: 66, 97: 65, 116: 84, 122: None, 90: None
5.12 元组项目连接到字符串 join()
join()
方法
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法
string.join(iterable)
参数值
参数 | 描述 |
iterable | 必需。所有返回值均为字符串的任何可迭代对象。 |
实例
- 使用哈希字符作为分隔符,将元组中的所有项目连接到字符串中:
tuple_1 = ("baidu", "alibaba", "tencent") x = "#".join(tuple_1) print(x)
baidu#alibaba#tencent
- 使用单词 “TEST” 作为分隔符,将字典中的所有项目连接成一个字符串:
dict_1 = {"name": "Bill", "country": "USA"} separator = "TEST" x = separator.join(dict_1) print(x)
nameTESTcountry
5.13 字符串替换 replace()
replace()
方法
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法
string.replace(oldvalue, newvalue, count)
参数值
参数 | 描述 |
oldvalue | 必需。要检索的字符串。 |
newvalue | 必需。替换旧值的字符串。 |
count | 可选。数字,指定要替换的旧值出现次数。默认为所有的出现。 |
实例
- 替换单词 “bananas”:
txt = "I like bananas" x = txt.replace("bananas", "apples") print(x)
I like apples
- 替换所有出现的单词 “one”:
txt = "one one was a race horse, two two was one too." x = txt.replace("one", "three") print(x)
three three was a race horse, two two was three too.
- 替换前两次出现的单词 “one”:
txt = "one one was a race horse, two two was one too." x = txt.replace("one", "three", 2) print(x)
three three was a race horse, two two was one too.
5.14 字符串 Tab 转换 expandtabs()
expandtabs()
方法
expandtabs() 方法把字符串中的 tab 符号 \t 转为空格,tab 符号 \t 默认的空格数是 8,在第 0、8、16…等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替。
语法
string.exandtabs(tabsize)
参数值
参数 | 描述 |
tabsize | 可选。规定制表符大小的数字。默认的 tabsize 是 8。 |
实例
- 将制表符大小设置为 2 个空格:
txt = "H\te\tl\tl\to" x = txt.expandtabs(2) print(x)
H e l l o
- 请看看不同制表符大小的结果:
txt = "H\te\tl\tl\to" print(txt) print(txt.expandtabs()) print(txt.expandtabs(2)) print(txt.expandtabs(4)) print(txt.expandtabs(10))
H e l l o H e l l o H e l l o H e l l o H e l l o
6、总结
函数 | 描述 |
print() | 打印输出 |
len() | 确定字符串长度 |
type() | 返回变量类型 |
str() | 转换为字符串 |
max() | 字符串最大字符 |
min() | 字符串最小字符 |
del | 删除字符串 |
方法 | 描述 |
capitalize() | 把首字符转换为大写 |
casefold() | 把字符串转换为小写(处理其他语言且存在大小写) |
lower() | 把字符串转换为小写 |
islower() | 如果字符串中的所有字符都是小写,则返回 True |
upper() | 把字符串转换为大写 |
isupper() | 如果字符串中的所有字符都是大写,则返回 True |
title() | 返回"标题化"字符串:所有单词都以大写开始,其余字母均为小写 |
istitle() | 如果字符串遵循标题规则,则返回 True |
swapcase() | 将字符串中大写转换为小写,小写转换为大写 |
count(str, beg, end) | 返回str出现的次数,beg和end指定范围 |
find(str, beg, end) | 搜索指定的值并返回该位置,beg 和 end 指定范围,不存在返回-1 |
index(str, beg, end) | 搜索指定的值并返回该位置,beg 和 end 指定范围,不存在报异常 |
rfind(str, beg, end) | 类似于 find() ,不过是从右边开始 |
rindex( str, beg, end) | 类似于 index(),不过是从右边开始 |
startswith(str, beg, end) | 检查是否以 str 开头,beg 和 end 指定范围,如果是,返回 True,否则返回 False |
endswith(str, beg, end) | 检查是否以 str 结束,beg 和 end 指定范围,如果是,返回 True,否则返回 False |
encode(‘UTF-8’, ‘strict’) | 编码,出错默认报 ValueError 异常,除非 errors 指定的是’ignore’或者’replace’ |
decode(‘UTF-8’, ‘strict’) | 解码,出错默认报 ValueError 异常,除非 errors 指定的是’ignore’或者’replace’ |
center(width, fillchar) | 返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格 |
ljust(width, fillchar) | 字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 |
rjust(width, fillchar) | 字符串右对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 |
zfill (width) | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
lstrip() | 删除字符串左边的空格或指定字符 |
rstrip() | 删除字符串末尾的空格或指定字符 |
strip() | 在字符串上执行 lstrip()和 rstrip(),返回字符串的剪裁版本 |
isspace() | 如果字符串中的所有字符都是空白字符,则返回 True |
isprintable() | 如果字符串中的所有字符都是可打印的,则返回 True |
isidentifier() | 如果字符串是标识符,则返回 True |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False |
isdigit() | 如果字符串只包含数字则返回 True ,否则返回 False |
isnumeric() | 如果字符串中的所有字符都是数字,则返回 True |
isdecimal() | 检查所有字符是否都是十进制数(0~9),是则返回 True, 否则返回 False |
format() | 格式化字符串中的指定值 |
format_map() | 格式化字符串中的指定值(字典) |
split(str, num) | 以 str 为分隔符截取,若 num 指定,则截取 num+1 个子字符串,并返回列表(从左) |
rsplit() | 以 str 为分隔符截取,若 num 指定,则截取 num+1 个子字符串,并返回列表(从右) |
splitlines() | 在换行符处拆分字符串并返回列表 |
partition() | 返回元组,其中的字符串分为三部分(搜索 str 第一次出现) |
rpartition() | 返回元组,其中的字符串分为三部分(搜索 str 最后出现) |
maketrans(x[, y[, z]]) | x – 必需,要替代的字符串, y – 可选,相应映射的字符串, z – 可选,要删除的字符 |
translate() | 返回被转换的字符串 |
join() | 使用字符作为分隔符,将元组中的所有项目连接到字符串中 |
replace(old, new [, max]) | 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max |
expandtabs(tabsize) | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 |
以上就是本文的全部内容啦!如果对您有帮助,麻烦点赞啦!收藏啦!欢迎各位评论区留言!!!
最后编辑于:2022/7/31 16:27