python字符串的一些常见实用操作
作者:中南自动化学院“智能控制与优化决策“至渝 发布时间:2022-05-08 15:53:30
切片——str[start:end]
str1 = ' python str '
#切片
print(str1[3:6]) # str[start:end](下标从 0 开始)从下标为start开始算起,切取到下标为 end-1 的元素,切取的区间为 [start, end)
print(str1[2:8:2]) # str[start:end:step],取 [start, end) 之间的元素,每隔 step 个取一个
print(str1[2:9:2])
tho
yhn
yhns
字符串长度——len(str)
str1 = "aBCd Efgh ijK LmN"
print(len(str1)) # 返回字符串的长度
17
重复字符串 ——1、str * n,2、n * str
#重复字符串 1、str * n,2、n * str, n为一个 int型的数字
str1 = ' python str '
print(str1*2)
print(3*str1)
python str python str
python str python str python str
查找某个字符 or 某个字符子串在不在原字符串中
1、in 关键字
# in 关键字
str1 = ' python str '
print('p' in str1)
print('py' in str1)
print('py' not in str1)
True
True
False
2、find函数
# str.find(str, start=0, end=len(string)) 如果包含子字符串返回开始的索引值,否则返回-1。
str1 = ' python str '
str2 = "python"
print(str1.find(str2))
print(str1.find(str2, 1))
print(str1.find(str2, 5))
1
1
-1
3、index函数
# str.index(str, start=0, end=len(string)) 如果包含子字符串返回开始的索引值,否则抛出异常。
str1 = ' python str '
str2 = "python"
print(str1.index(str2))
print(str1.index(str2, 1))
print(str1.index(str2, 5))
1
1Traceback (most recent call last):
File “E:/李明/pycharmProject/深度学习入门/main.py”, line 27, in
print(str1.index(str2, 5))
ValueError: substring not found
4、rfind函数
str11 = " python str python str "
str2 = "python"
print(str11.rfind(str2))
print(str11.rfind(str2,10,len(str11))) # str.rfind(substr, start,end) 类似于 find()函数,不过是从右边开始查找.
5、rindex函数
str11 = " python str python str "
str2 = "python"
print(str11.rindex(str2)) # str.rindex(substr, start,end)类似于 index(),不过是从右边开始.
print(str11.rindex(str2,10,len(str11)))
字符串中某字符(子字符串)的数量——str.count(sub, start= 0,end=len(string))
str = "li hua shi ge huai hai zi"
print(str.count('i', 0, 15)) # str.count(sub, start= 0,end=len(string))
print(str.count('i'))
print(str.count('shi'))
2
5
1
去除空格——str.strip()、str.lstrip()、str.rstrip()
str1 = ' python str '
print (str1)
print (str1.strip()) # 去首尾空格
print (str1.lstrip()) # 去左侧空格
print (str1.rstrip()) # 去右侧空格
结果:
分割字符串——str.split()
str1 = '1 , 2 , 3 , 4 , 5'
print (str1.split()) # 默认使用空格分隔
print (str1.split(' ')) # 指定使用空格进行分隔,首尾如果有空格,则会出现在结果中
print (str1.split(',')) # 指定其他字符串进行分隔,指定,分割
print (str1.split('3 ,')) # 指定 3 , 分割
[‘1’, ‘,’, ‘2’, ‘,’, ‘3’, ‘,’, ‘4’, ‘,’, ‘5’]
[‘1’, ‘,’, ‘2’, ‘,’, ‘3’, ‘,’, ‘4’, ‘,’, ‘5’]
['1 ', ’ 2 ', ’ 3 ', ’ 4 ‘, ’ 5’]
['1 , 2 , ‘, ’ 4 , 5’]
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 次
str1 = '1 , 2 , 3 , 4 , 5'
print (str1.split(',')) # 指定其他字符串进行分隔,指定,分割
print (str1.split(',',3))
['1 ', ’ 2 ', ’ 3 ', ’ 4 ‘, ’ 5’]
['1 ', ’ 2 ', ’ 3 ‘, ’ 4 , 5’]
替换字符串——str.replace(old, new, max)
# str.replace(old, new, max) 字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str1 = "li hua shi ge huai hai zi,li hua shi ge huai hai zi"
print(str1.replace("ai", "PL"))
print(str1.replace("ai", "PL", 3))
li hua shi ge huPL hPL zi,li hua shi ge huPL hPL zi
li hua shi ge huPL hPL zi,li hua shi ge huPL hai zi
判断字符串是否以指定前缀、后缀结尾
是否是指定前缀——str.startswith(str, start=0,end=len(string))
# str.startswith(str, start=0,end=len(string)),检查字符串[start,end)以指定子字符串开头,如果是则返回 True,否则返回 False
str1 = "this is string example....wow!!!"
print(str1.startswith('this'))
print(str1.startswith('is', 2, 4))
print(str1.startswith('his', 1, 3))
True
True
False
是否是指定后缀——str.endswith(suffix, start, end)
# str.endswith(suffix, start, end),检查字符串[start,end)以指定后缀结尾,是返回True,否则返回False
str1 = "this is string example....wow!!!"
str2 = "wow!!!"
print (str1.endswith(str2)) # True
print (str1.endswith(str2,20)) # True
str2 = "is"
print (str1.endswith(str2, 2, 4)) # True
print (str1.endswith(str2, 2, 6)) # False
print (str1.endswith(str2, 2, 7)) # True
True
True
True
False
True
将字符串的第一个字母变成大写,其他字母变小写——str.capitalize()
str1 = "aBCd Efgh ijK LmN"
print(str1.capitalize()) # 将字符串的第一个字母变成大写,其他字母变小写
Abcd efgh ijk lmn
转换字符串中所有大写字符为小写,将字符串中的小写字母转为大写字母——str.lower()、str.upper()
str1 = "aBCd Efgh ijK LmN"
print(str1.lower()) # 转换字符串中所有大写字符为小写
print(str1.upper()) # 将字符串中的小写字母转为大写字母
abcd efgh ijk lmn
ABCD EFGH IJK LMN
对字符串的大小写字母进行转换——str.swapcase()
str1 = "aBCd Efgh ijK LmN"
print(str1.swapcase()) # 对字符串的大小写字母进行转换
AbcD eFGH IJk lMn
返回字符串 str 中最小(大)的字母 ( ASCII码比大小)——max(str)、min(str)
str1 = "aBCd Efgh ijK LmN"
print(max(str1)) # 返回字符串 str 中最大的字母
print(min(str1)) # 返回字符串 str 中最小的字母 此实例是空格最小 ASCII码
m
(空格最小)
把字符串的每个单词首字母大写——str.title()
str1 = "aBCd Efgh ijK LmN"
print(str1.title()) # 把字符串的每个单词首字母大写
Abcd Efgh Ijk Lmn
检测字符串组成
检测数字——str.isdigit()、str.isnumeric()、str.isdecimal()
str1 = "123456"
print(str1.isdigit()) # 检测字符串是否只由数字组成
print(str1.isnumeric()) # 检测字符串是否只由数字组成,这种方法是只针对unicode对象
print(str1.isdecimal()) # 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
检测字母——str.isalpha()
str1 = "abcd"
print(str1.isalpha()) # 检测字符串是否只由字母组成
检测字母和数字——str.isalnum()
str1 = "123456abcd"
print(str1.isalnum()) # 检测字符串是否由字母和数字组成
检测其他
str.isspace() # 检测字符串是否只由空格组成
str.islower() # 检测字符串是否由小写字母组成
str.isupper() # 检测字符串中所有的字母是否都为大写
str.istitle() # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
这几个就不举例子了
填充字符串 (左填充、右填充、居中填充)——str.rjust(width)、str.rjust(width)、str.rjust(width)
str1 = "abcd"
print(str1.ljust(10)) # str.rjust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
print(str1.rjust(10)) # str.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
print(str1.center(10)) # str.rjust(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
abcd
abcd
abcd
把字符串分割成三部分,子字符串前的、子字符串、子字符串后的——str.partition(substr)、str.rpartition(substr)
str1 = "abcdefghijklmnabcdefghijklmn"
str2 = "efg"
print(str1.partition(str2)) # str.partition(substr) 返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
print(str1.rpartition(str2)) #类似于 partition()函数,不过是从右边开始
(‘abcd’, ‘efg’, ‘hijklmnabcdefghijklmn’)
(‘abcdefghijklmnabcd’, ‘efg’, ‘hijklmn’)
join函数
# str.join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str = '-'
seq = ("a", "b", "c"); # 字符串序列
print(str.join(seq)) # 'a-b-c'
a-b-c
来源:https://wuyinzhiming.blog.csdn.net/article/details/108578161


猜你喜欢
- 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠directory1='/opt/apps/upgradeP
- 统一捕获接口报错弹窗提示报错重定向基础鉴权表单序列化实现的功能统一捕获接口报错 : 用的axios内置的 * 弹窗提示: 引入 E
- 本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能。分享给大家供大家参考,具体如下:给定一个字符串,如何得到其中重复模式最高
- 目录1. matplotlib 框架组成2. 脚本层(scripting)3. 美工层(artist)4. 后端层(backend)复习回顾
- 字体设计是人类商业活动的需求,它随着时代和科学技术的进步而不断地变化着。被广泛应用于网络生活的各个方面。现代字体设计在计算机技术的应用中已经
- 当你的web应用程序成长到一定规模时,你可能需要使用消息队列来处理异步任务、事件或在多个服务之间传递消息。Kafka是一个开源的消息队列系统
- 我们今天就来看一下PHP 7正式版的算法和 wordpress 应用在其上的性能表现。PHP7 的安装,真是非常地向下兼容,下载,解压,把之
- 这里我们将分析一下如何开启和使用smarty缓存,如何清除smarty缓存以及smarty的全局缓存,部分缓存,局部缓存三种缓存机制。一、开
- 这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 注:Unicode相关知识的详细介绍请参考UTF-8, UTF-16, UTF-32 & BOM。 对于UTF-8/16/32而言,
- 如何在安装setuptools模块时不生成egg压缩包而是源码 Q:如何在安装setuptools模块时
- python有专门的神经网络库,但为了加深印象,我自己在numpy库的基础上,自己编写了一个简单的神经网络程序,是基于Rosenblatt感
- Django 作为后端Web开发框架,有时候我们需要用到定时任务来或者固定频次的任务来执行某段代码,这时我们就要用到Celery了。Djan
- 前言本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看“诡异”的一幕,执行Updat
- 前言:我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会
- 实例是具象化的类,它可以作为类访问所有静态绑定到类上的属性,包括类变量与方法,也可以作为实例访问动态绑定到实例上的属性。实例1:class
- 本文实例为大家分享了微信小程序调用摄像头实现拍照的具体代码,供大家参考,具体内容如下微信小程序开发文档首先,需要用户授权摄像头权限,这一步是
- 下载GPL版本安装MySQL Community Edition(GPL)Community (GPL) Downloads &ra
- 如何编写CSS代码才能更有效率?这是许多网页制作者与开发者都关心的问题。大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,但合理
- 功能1: 爬取西拉ip代理官网上的代理ip环境:python3.8+pycharm库:requests,lxml浏览器:谷歌IP地址:htt