Python的字符串操作

1、获取元素

1.1索引

索引是最简单的获取元素的方式。根据元素在字符串的下标位置直接输出想要获取的一个元素。

例:print(str[1])

str = "I miss you so much, let's meet."
print(str[2])
# 输出结果为: “m”

 1.2切片

切片可以根据元素的下标位置获取想要的多个元素。

例:print(str[2:10:1]),即:print(字符串名称[起始元素下标:结束元素下标+1:步长])。

步长表示每几个元素输出一次,不写时则默认为1。

str = "I miss you so much, let's meet."
print(str[2:10])
# 输出结果为: “miss you”
print(str[2:10:2])
# 输出结果为: “ms o”

需要进行倒叙输出时,则将步长改为负数。

str = "I miss you so much, let's meet."
print(str[10:2:-1])
# 输出结果为: “ uoy ssi”
print(str[10:2:-2])
# 输出结果为: “ o s”

也可以从最后一个元素开始计算下标,则最后一个元素下标为“-1”,前面每个元素下标则相应减一。

str = "I miss you so much, let's meet."
print(str[-7:-1:1])
# 输出结果为: “s meet”
print(str[-1:-7:-1])
# 输出结果为: “.teem ”

2.获取元素下标

2.1获取字符串长度

可以根据函数“len”来获取字符串的长度。(空格在字符串中占1个位置)

例:print(len(str))

str = "I miss you so much, let's meet."
print(len(str)) #  输出结果为:31

2.2“index”获取指定元素下标

使用“index”可以根据指定的元素获取该元素在字符串中从索引位置开始的第一个下标的位置。

使用方法:index(元素,下标),只能输出第一个元素的下标,若没有该元素则报错。下标未写则默认从“0”开始。

例:print(str.index("i",0))

str = "I miss you so much, let's meet."
print(str.index("i")) #  输出结果为:3
print(str.index("m",0)) #  输出结果为:2, 第一个"m"在字符串中的下标
print(str.index("m",3)) #  输出结果为:14, 第二个"m"在字符串中的下标
print(str.index("m",15)) #  输出结果为:26, 第三个"m"在字符串中的下标

2.3“find”获取指定元素下标

 “find”与“index”相同,可以根据指定的元素获取该元素在字符串中从索引位置开始的第一个下标的位置。

使用方法:find(元素,下标),只能输出第一个元素的下标,若没有该元素则输出“-1”。

str = "I miss you so much, let's meet."
print(str.find("i",0)) #  输出结果为:3
print(str.find("m",0)) #  输出结果为:2, 第一个"m"在字符串中的下标
print(str.find("m",3)) #  输出结果为:14, 第二个"m"在字符串中的下标
print(str.find("m",15)) #  输出结果为:26, 第三个"m"在字符串中的下标
print(str.find("a")) #  输出结果为:-1

2.4查找所有指定元素下标

“index”与"find"均只能输出从查找位置起的第一元素的下标,若想要输出一个字符串中所有指定元素的下标则需要使用循环方法来实现。

for循环:

# 初始化字符串,用于后续查找字符位置
str = "I miss you so much, let's meet."

# 初始化起始查找位置
start = 0

# 遍历字符串中的每个字符
for i in str:
    # 在字符串中从当前起始位置开始查找字符"m"的位置
    num = str.find("m",start)
    # 更新起始查找位置为当前找到的"m"的位置之后的一个字符
    start = num+1
    # 如果找不到"m",则退出循环
    if num == -1:
        break
    # 打印找到的"m"的位置
    print(num)

while循环:-1表示之后没有要查找的元素,结束循环。

# 初始化字符串,用于后续查找字符位置
str = "I miss you so much, let's meet."

# 初始化起始查找位置
start = 0
num = 0

# 当在字符串中还能找到字符"m"时,继续循环
while num != -1:
    # 在字符串中从当前起始位置开始查找字符"m"的位置
    num = str.find("m", start)

    # 如果找不到"m",则退出循环
   # if num == -1:
        #break

    # 打印找到的"m"的位置
    print(num)

    # 更新起始查找位置为当前找到的"m"的位置之后的一个字符
    start = num + 1

3、其他操作

3.1替换

"replace"可以将字符串中的元素替换为其他元素。由于字符串本身为不可改变的,所以需要一个新的字符串变量来进行接收,即新生成一个替换元素后的字符串。

使用方法:replace(被替换元素,替换元素,替换个数),当“替换个数”没有写明时,则默认全部替换。替换是从第一个想要被替换的元素开始的。

str = "I miss you so much, let's meet."
str1 = str.replace("m","A")
str2 = str.replace("m","A",1)
print(str) #  输出结果为:I miss you so much, let's meet.
# 原字符串不会改变
print(str1) #  输出结果为:I Aiss you so Auch, let's Aeet.
# 替换全部的“m”为“A”
print(str2) #  输出结果为:I Aiss you so much, let's meet.
# 只替换第一个“m”为“A”

3.2转换大小写

字符串中的大小写相互转换使用:

upper:小写转为大写。

lower:大写转为小写。

swap case:大写转小写、小写转大写。

str = "I Miss You So Much, Let's Meet."
str1 = str.upper()
str2 = str.lower()
str3 = str.swapcase()
print(str) #  输出结果为:I Miss You So Much, Let's Meet.
print(str1) #  输出结果为:I MISS YOU SO MUCH, LET'S MEET.
# 输出全为大写
print(str2) #  输出结果为:i miss you so much, let's meet.
# 输出全为小写
print(str3) # 输出结果为:i mISS yOU sO mUCH, lET'S mEET.
# 输出大小写互换

3.3判断

字符串中的判断使用:

isalpha:是否为纯字母

isupper:是否为纯大写

islower:是否为纯小写

isdigit:是否为纯数字

判断结果正确则为“True”,错误则为:“False”。

str = "IMissYouSoMuchLeMet"
str1 = "137486"
print(str.isalpha()) #  输出结果为:True
print(str.islower()) #  输出结果为:False
print(str.isupper()) #  输出结果为:False
print(str1.isdigit()) # 输出结果为:True

3.4去除空格

将字符串中的空格去除可以使用:

replace:将所有空格均替换为空。replace(“ ”,“”)。

strip:去除字符串两端的空格。

lstrip:去除字符串左端的空格。

rstrip:去除字符串右端的空。

split(切割):在字符串中的“ ”进行切割,切割后为列表,需要拼接回字符串。

str = " 我还是在想你 你还好吗 我们再见一次吧 "
str1 = str.replace(" ","")
str2 = str.strip()
str3 = str.lstrip()
str4 = str.rstrip()
li = str.split(" ")
print(str1) #  输出结果为:"我还是在想你你还好吗我们再见一次吧"
print(str2) #  输出结果为:"我还是在想你 你还好吗 我们再见一次吧"
print(str3) #  输出结果为:"我还是在想你 你还好吗 我们再见一次吧 "
print(str4) # 输出结果为:" 我还是在想你 你还好吗 我们再见一次吧"
print(li) # 输出结果为:"['', '我还是在想你', '你还好吗', '我们再见一次吧', '']"

 

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值