Python字符串操作

Python字符串操作

一、索引

​ 序列中的所有元素都可以通过索引(下标)来获取,从左往右,第一个元素的索引为0,第二个为1,依此类推到最后一位。索引还可以取负值,从右往左,最后一个元素的索引为-1,倒数第二个为-2,依此类推到左侧第一位。

​ 例如,创建一个字符串:str = “Python”,其索引如下表。

字符Python
索引(正)012345
索引(负)-6-5-4-3-2-1

​ 假设需要获取字符串变量str中的第三个字符”t“,具体代码如下:

str = 'Python'
print(str[2])          # 正数索引获取方式
print(str[-4])         # 负数索引获取方式
二、分片

​ 分片与索引类似,都可以获取序列中的元素,区别是索引只能获取单个元素,而分片可以获取一定范围内的元素。

​ 分片通过冒号隔开的两个索引来实现,其语法是:

slice[start: end: step]

​ 其中slice表示字符序列,start表示起始索引,end表示结束索引(不包含结束位本身),step表示步长,(默认为1,不能为0)。

​ 例如,创建序列:strs = “abcdefg”,使用分片获取元素的几种情况如下表。

分片方式描述结果
strs[1:]获取strs中从索引1开始到最后一个元素之间的所有元素‘bcdefg’
strs[: 3]获取strs中从索引0到索引3之间的所有元素‘abc’
strs[1: 3]获取strs中索引1到索引3之间的所有元素‘bc’
strs[: -1]获取strs中从索引0开始到最后一个元素之间的所有元素‘abcdef’
strs[-3:]获取strs中的最后三个元素‘efg’
strs[-3: -1]获取strs中从索引-3开始到最后一个元素之间的所有元素‘ef’
strs[:]获取strs中的所有元素‘abcdefg’
strs[0: 7: 2]将步长设置为2,获取strs从开始到结束的元素‘aceg’
strs[-1: -8: -1]步长为负数,分片索引的开始点必须大于结束点,分片从右往左提取元素‘gfedcba’
strs[:: -1]从strs中从右往左提取所有元素(可用来字符串逆序)‘gfedcba’
三、字符串加法、乘法,获取长度、最大值和最小值

>>>'Hello' + 'world' + '!'         # 字符串相加
'Hello world!'

>>>'Hello' * 3                     # 使用数字n乘一个字符串,原字符串会被重复n次
'HelloHelloHello'

>>>len('abcde')                    # 获取字符串的长度
5

>>>max('123')                      # 获取序列中ASCII码最大的元素
3

>>>min('123')                      # 获取序列中ASCII码最小的元素
1
四、字符串方法

1、find()方法

​ find()方法用于在一个较长的字符串中查找子串。如果找到子串,返回子串所在位置的最左端索引,如果没有找到则返回-1,其语法格式如下:

str.find(sub[, start[, end]])

​ 其中,str表示被查找字符串,sub表示查找的子串,start表示开始索引,省略时默认为0,end表示结束索引,省略时默认为字符串长度。

​ 例:查找子串”like“是否在字符串new_str中。

new_str = "I like learning Python"
a = new_str.find("like")
b = new_str.find("like", 5, 15)
print(a, b)
# 运行结果为:2 -1

​ 【提示】用于查找子串的另一个常用方法是index()方法,该方法与find()方法的用法基本一致,区别在于当查找的子串不存在是,index()方法会抛出异常。

2、count()方法

​ count()方法用于统计字符串里某个子串出现的次数。该函数返回子串在字符串中出现的次数。其语法格式如下:

str.count(sub[, start[, end]])

​ 其中,str表示被查找字符串,sub表示要统计的子串,start表示开始索引,省略时默认为0,end表示结束索引,省略时默认为字符串长度。

​ 例:使用count()方法查找new_str中出现is的次数。

new_str = "This is a Python book!"
a = new_str.count("is")
b = new_str.count("is", 1, 6)
print(a, b)
# 运行结果为:2 1

3、split()方法

​ split()方法以指定的字符为分隔符,从字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表。其语法格式如下:

str.split([delimiter, num])

​ 其中,str表示被分隔的字符串,delimiter表示分隔符,省略时默认为空字符,包括空格、换行(\n)、制表符(\t)、等,num表示分隔次数,省略时默认全部分隔。

​ 例:使用split()方法分隔new_str字符串

new_str = "This is an example of cutting"
a = new_str.split()
b = new_str.split("", 3)
print(a)
print(b)
# 运行结果为:
# ['This', 'is', 'an', 'example', 'of', 'cutting']
# ['This', 'is', 'an', 'example of cutting']

4、join()方法

​ join()方法用于将序列中的元素以指定的字符连接,生成一个新的字符串。其语法格式如下:

str.join(sequence)

​ 其中,str表示连接符,可以为空;sequence表示要连接的元素序列。

​ 例:使用join()方法将new_str字符串中的字符用“-”连接,代码如下。

new_str = "This is a Python book!"
print("-".join(new_str))
# 运行结果为:T-h-i-s- -i-s- -a- -P-y-t-h-o-n- -b-o-o-k-!

5、replace()方法

​ replace()方法用于字符串中的字符替换。其语法格式如下:

str.replce(old, new[, max])

​ 其中,str表示被查找的字符串,old表示被替换的子串,new表示要替换成的新字符串,max是可选参数,表示替换次数不超过max次,省略时默认替换所有。

​ 例:使用replace()方法把new_str中的”day“替换成”DAY“,代码如下。

new_str = "Monday Tuesday Wednesday Thursday Friday Saturday Sunday"
print(new_str.replace("day", "DAY"))
print(new_str.replace("day", "DAY", 3))
# 运行结果为:
# 'MonDAY TuesDAY WednesDAY ThursDAY FriDAY SaturDAY SunDAY'
# 'MonDAY TuesDAY WednesDAY Thursday Friday Saturday Sunday'

6、strip()方法

​ strip()方法用于删除字符串两端的空白字符或指定字符。其语法格式如下:

str.strip([chars])

​ 其中,str表示字符串,chars表示移除字符串两端指定的字符,省略时默认为空格。

​ 例:使用strip()方法去掉new_str中的字符”0“和”1“。

new_str = "110This is an example0001"
print(new_str.strip("1"))      # 移除new_str两侧的1
print(new_str.strip("01"))     # 移除new_str两侧的0和1
# 运行结果为:
# '0This is an example000'
# 'This is an example'

7、lower()方法和upper()方法

​ lower()方法用于将字符串中的所有大写字母转化为小写,而upper()方法则用于转化字符串中所有的小写字符转化为大写。其语法格式如下:

str.lower()
str.upper()

​ 其中,str表示要转化的字符串。

​ 例:使用lower()方法将new_str中的大写字母转化为小写,使用upper()方法将new_str中的小写字母转化为大写:

new_str = "This is an EXAMPLE"
print(new_str.lower())
print(new_str.upper())
# 运行结果为:
# 'this is an example'
# 'THIS IS AN EXAMPLE'

8、isalnum()方法

​ isalnum()方法用于检测字符串是否由字母和数字、或两种之间的一种组成。如果是就返回True,否则返回False。其语法格式如下:

str.isalnum()

​ 其中,str表示要检测的字符串。

​ 例:使用isalnum()方法判断new_str是否由字符串或数字组成。

new_str = "example8888"
print(new_str.isalnum())
# 运行结果为:True
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值