字符串、元组、字典常见操作
字符串:
![](https://i-blog.csdnimg.cn/blog_migrate/94599ba10b9ef36b6d4ce72d68dc9535.png)
字符串部分示例:
"""
python提供的字符串的功能操作:
判断
查找与替换[重点]
拆分与拼接
大小写转换
文本对齐
去除空白字符
"""
"""判断"""
# 判断字符串中成员是否全是英文字母,结果是布尔值
str1 = "abcd3ef"
print( str1.isalpha() ) # False
# 判断字符串中成员是否都是阿拉伯数字,结果是布尔值
str1 = "10086"
res = str1.isdecimal()
print( res ) # True
# 判断字符串中成员是否都是小写英文字母,结果是布尔值
# 注意,只会判断字母是否都是小写,也就是说,如果出现别的字符,不影响判断
str1 = "py10086thon"
str1 = "pY10086thon"
res = str1.islower()
print(res) # False
# 判断字符串中成员是否都是大写英文字母,结果是布尔值
# 和islower一样,只在意英文字母的大小写,其他不管
str1 = "HOLLE"
res = str1.isupper()
print( res ) # True
# 判断字符串是否以指定字符开头
str1 = "张三"
res = str1.startswith("张")
print( res ) # True
# 判断字符串是否以指定字符结尾
str1 = "中国-韩国"
res = str1.endswith("-朝鲜")
print( res ) # False
"""查找和替换"""
# 在字符串中查找指定成员的下标,如果有,则结果是下标,如果没有,则结果是-1
str1 = "abcdef"
res = str1.find("f")
print(res) # 5
# 使用find的时候,默认是从左边开始找,只会找一次,
# 如果希望反方向找,那么可以使用rfind()
str1 = "abdebf"
res = str1.rfind("b") # r 反方向查找
print(res) # 4
# 在字符串中查找指定内容的下标,如果找到,则结果是下标,找不到则报错。
str1 = "abcdef"
res = str1.index("w") # ValueError: substring not found
print(res)
# 同样地,index也是从左往右查找一次,所以如果希望反方向查找,使用 rindex
# 替换字符串中的指定内容,结果是一个替换后的新字符串
str1 = "hello"
# 把 ll 替换成 **
# 用法:字符串.replace(旧的内容,新的内容,替换次数)
str2 = str1.replace("ll","**")
print( str2 ) # he**o
# 使用时,第三个数据 替换次数,一般用不上,默认替换所有
str1 = "hello world"
str2 = str1.replace("l","*",2)
print( str2 ) # he**o
# 统计字符串中指定字符出现的次数
str1 = "hello py th on"
res = str1.count(" ") # 统计多少个空格
print( res ) # 3
"""拆分和拼接"""
str1 = "中国-美国"
# 按照指定的字符对字符串进行拆分一次,注意:结果是一个元组,里面有三个成员
res = str1.partition("-")
print(res) # ('中国', '-', '美国')
# partition 正常情况下,是从左往右拆分,只会拆分一次,
# 如果希望从右边开始拆分,那么可以使用rpartition()
# 按照指定字符拆分字符串,拆分多次,结果是列表。
# 格式:字符串.split(sep) # sep 就是 分隔符
str1 = "北京-顺义-马坡南"
res = str1.split("-")
print( res ) # ['北京', '顺义', '马坡南']
# 按行对内容进行拆分,结果是列表, 一行字符就是一个成员
str1 = '''
北京
顺义
马坡南'''
res = str1.splitlines()
print(res) # ['', '北京', '顺义', '马坡南']
# 以指定字符作为拼接符,拼接容器[有成员的数据类型,例如,元组、列表]
# 使用格式:拼接字符.join(列表或元组)
list1 = ["北京","顺义","马坡南"]
str1 = "-".join(list1)
print(str1) # 北京-顺义-马坡南
"""大小写转换"""
# # 把字符串中的大写字母转成小写字母
str1 = "ABC一"
str2 = str1.lower()
print( str2 ) # abc一
#
# # 把字符串中的小写字母转成大写字母
str1 = "abc"
str2 = str1.upper()
print( str2 ) # ABC
# 文本对齐
# 结果是返回一个新的字符串,表示在指定长度内容中,对字符串进行左中右文本对其
# ljust() # 左对齐 rjust() # 右对齐 center() # 居中
# 格式:字符串.center(长度,空白处的填充内容)
str1 = "文章标题"
res = str1.ljust(60,"*")
print(res)
res = str1.center(60,"*")
print(res)
res = str1.rjust(60,"*")
print(res)
# strip() 去除两边的空白字符
# 也可以清除指定的字符
str1 = " 123456 "
print( str1 ) # 字符串长度
str2 = str1.strip()
print( str2 )
# 去除两边指定的字符,替换成空格
str3 = "----123456---"
str4 = str3.strip('-') # 清除两边指定字符
print( str4 )
# 如果希望清楚中间的指定字符,可以使用replace,因为strip搞不定
str1 = "123-456"
str2 = str1.replace("-","")
print(str2)
# 练习:"北京123456**" 想要只剩下数字怎么办?
str1 = "23北1京45**6"
# 只拿数字,不要其他的。每一个字符都要判断,是不是数字。
str2 = ""
for char in str1:
# print(type(char) )
if char.isdecimal() == True:
str2 += char
print(str2)