Python基础之字符串操作常用函数集合


Posted in Python onFebruary 09, 2020

Python字符串常用功能汇总

Python基础之字符串操作常用函数集合

1、字符串的定义

#定义空字符串
>>> name=''
#定义非空字符串
>>> name="luoahong"
#通过下标访问
>>> name[1]
'u'
#不能修改字符串的值,否则会报错
>>> name[2] = "3"
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

特别提醒:字符串如果修改的话,字符串所在的内存地址也跟着变化,所以不可被修改,但是对于列表来说,可以修改是因为列表的内存是不变的,可以直接在上面修改

2、切片

特别提醒:字符串其实和列表,元组一样,也是可以切片的

>>> name="ahong luo"
>>> name[1:4]#取1到4之间的字符,包括1,不包括4
'hon'
>>> name[1:-1]  #取1到-1之间的字符,包括1,不包括-1
'hong lu'
>>> name[0:3] 
'aho'
>>> name[:3]
 #从头开始取,0可以省略,效果等同于name[0:3]
'aho'
>>> name[3:]
 #想取到最后一个值,必须不能写-1,只能这么写
'ng luo'
>>> name[0::2]
#后面的2表示:每隔一个字符就取一个
'aoglo'
>>> name[::2]
 #从头开始0可以省略,效果跟上一句一样
'aoglo'

3、首字母大写(capitalize())

>>> name="ahong luo"
>>> name.capitalize()
'Ahong luo'
>>>

4、统计(count(sub,start=None,end=None))

sub:统计的字符,start:开始位,end:结束位,start和end默认为空时,则表示全部字符中去统计

>>> name="ahong luo"
#有开始和结束符
>>> name.count("o",1,5)
1
#从整个字符串中统计字符
>>> name.count("o")
2
>>>

5、center(width,fillchar)

如果width(字符宽度)小于等于(<=)字符串的长度,则返回原字符串,如果大于(>)字符串的,则用fillchar(填满字符)填满,处理结果等于width,字符串位于fillchar的中间

>>> name="ahong luo"
>>> len(name)
9
#10小于等于字符串宽度
>>> name.center(12,'-')
'-ahong luo--'
#50大于字符串长度,并且字符串位于填充字符的中间
>>> name.center(50,'-')
'--------------------ahong luo---------------------'
>>> len(name.center(50,'-'))
50

6、ljust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最右边

>>> name="ahong luo"
>>> len(name)
9
#小于等于字符串的长度
>>> name.ljust(8,'-')
'ahong luo'
#大于字符串的长度
>>> name.ljust(50,'-')
'ahong luo-----------------------------------------'

 特别提醒:ljust中的l表示left的意思,表示从右向左

7.rjust(width,fillchar)

如果字符串的长度大于width(字符宽度),则返回原字符串,如果小于width,则用fillchar(填满字符)填满,处理结果等于width,fillchar位于字符串的最左边

>>> name="ahong luo"
>>> len(name)
9
>>> name.rjust(8,'-')
'ahong luo'
>>> name.rjust(50,'-')
'-----------------------------------------ahong luo' 

 特别提醒:ljust中的l表示left的意思,表示从左向右

8、编码(encode)

字符串的编码和解码,在这边不用说了,我专门写了一篇博客,详细地址:猛击这里

9、endwith(suffix,start=None,end=None)

判断是否已suffix结尾,是返回True,否返回Fales

suffix:表示字符,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断>>> name="ahong luo"

>>> name.endswith('0',1,4) False
 >>> name.endswith('o') True >>> name.endswith('o',1,4) False

10、find(sub,start=None,end=None)

全文查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

sub:字符或者字符串,start:开始位,end:结束位,start和end默认为空时,则在整个字符串中查找

>>> name="ahong luo"#没找到,则返回-1
>>> name.find("lu",1,4)
-1
>>> name.find("a",2)
-1
>>> name.find("lu")
6
>>> name.find("lu",1,6)
-1
>>> name.find("lu",1,10)
6
>>>

11、rfind(sub,start=None,end=None)

从左向右查找sub中第一个字符所在整个字符串中的索引值,没有找到则返回-1

>>> name="ahong luo"
#找到
>>> name.rfind("a")
0
#未找到
>>> name.rfind("a",2)
-1

12、format()

①关键字拼接也是官方推荐

1
2
3
4
5
6
7
8
9
name = "alex"
age = 18
 
info = '''----info-----
name:{_name}
age:{_age}
 '''.format(_name=name,_age=age)
 
print(info)
 ②占位符拼接

1
2
3
4
5
6
7
8
9
name = "alex"
age = 18
 
info = '''----info-----
name:{0}
age:{1}
 '''.format(name,age)
 
print(info)

13、format_map()

数据格式,以字典形式传入

>>> name="name:{name},age:{age}"
>>> name.format_map({"name":"luoahong",'age':23})
#输出结果
'name:luoahong,age:23'

14、isalnum()

是否是一个阿拉伯数字和字母,它包含因为英文字符+(1-9)数字,中间不能有特殊字符

>>> age='23'
>>> age.isalnum()
True
#有特殊字符的
>>> age='ab23'
>>> age='ab'
>>> age.isalnum()
True
>>> age='ab'
>>> age.isalpha()
True
>>>

15、isalpha()

是否是一个纯的英文字符,包含大写

>>> age = 'ab'
>>> age.isalpha()
True
#夹着数字
>>> age = 'ab23'
>>> age.isalpha()
False
#大写
>>> age = 'Ab'
>>> age.isalpha()
True

 16、isdigit()

判断是否是一个整数

17、isspace()

判断是否是一个空格

#不是空格
>>> age = ' age'
>>> age.isspace()
False
#是空格
>>> age = ' '
>>> age.isspace()
True

 18、istitle()

 是否是一个标题(字符串中的每个单子首字母大写)

#每个单词的首字母是小写
>>> name="luoahong"
>>> name.istitle()
False
>>> name="luo a hong"
>>> name.istitle()
False
#每个单词的首字母大写
>>> name="Luo A Hong"
>>> name.istitle()
True
>>> name="Luoahong"
>>> name.istitle()
True 

19、isupper()

是否是大写,注意字符串必须全部是大写才会返回True,否则返回False

#全部大写
>>> name="LUO"
>>> name.isupper()
True
#小写
>>> name="Luo"
>>> name.isupper()
False
>>>

 20、join()

序列用某个字符拼接成一个字符串,注意的是,序列的元素必须是str类型

>>> a = ['1','2','3']
>>> '+'.join(a)
'1+2+3'

 21、lower()

字符串中的大写字母转换为小写字母

>>> name="LuoAHong"
>>> name.lower()
'luoahong'
>>>

 22、upper()

字符串中的小写字母转换为大写字母

>>> name="LuoAHong"
>>> name.upper()
'LUOAHONG'

 23、strip()

去掉左右两边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.strip()
'luoahong'

 24、lstrip()

删掉左边到右的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.lstrip()
'luoahong \n'

 25、rstrip()

删掉右边到左边的空格(space)和回车(\n)

>>> name= " \n luoahong \n"
>>> name.rstrip()
' \n luoahong'

至此,方法前有l(left)和r(right)的函数,都是对之前函数的一个扩展,带l的表示至始至终从右到左操作,记住左边才是最终目的地,而带r的至始至终都是从左到右,因为右边才是它的终极目标

26、split()

分割函数,默认是以空格分割(space)生成一个列表,如果其他字符分割,输入其他字符参数

>>> name="ahong luo"
#默认为空,按空格分割
>>> name.split()
['ahong', 'luo']
>>> name="ahong+luo"
#以"+"字符分割
>>> name.split("+")
['ahong', 'luo']
#以'\n'分割
>>> name="ahong\nluo"
>>> name.split("\n")
['ahong', 'luo']

 27、splitlines()

以换行符分割,这个一般在windows上开发,移到Linux上执行,或者在Linux上开发,移到Windows上执行,因为换行在windows上是"\r\n",linux上是'\n'

>>> name="ahong\nluo"
>>> name.splitlines()
['ahong', 'luo']

 28、swapcase()

把大写换成小写,把小写换成大写

>>> name="Luo"
>>> name.swapcase()
'lUO'

29、startswith(prefix, start=None,end=None)

判断是否以prefix开始,是返回True,否返回Fales

prefix:表示字符或者字符或者字符串,start:开始位,end:结束位,start和end默认为空是,表示从整个字符串的结尾去判断

>>> name="ahong luo"
>>> name.startswith("luo")#开头找到"luo"字符串
False
>>> name.startswith("h",3,5)
#在索引3到5之间没有找到以字符'h'开头
False 

30、replace(old,new[, max])

old:将被替换的子字符串; new:新字符串,用于替换old子字符串;max:可选字符串, 替换不超过 max 次

>>> name="wo shi luo a hong"
>>> name.replace("shi","bushi")
'wo bushi luo a hong'
#原字符串没有改变
>>> name.replace("shi","bushi",0)
'wo shi luo a hong'
>>> name.replace("shi","bushi",1)
'wo bushi luo a hong'

31、zfill(width)

字符的长度是否大于等于(>=)with,如果比width小,则在字符串钱用0填充,如果>=width,则返回原字符串

>>> name="luoahong"
>>> len(name)
8
#width大于字符串长度
>>> name.zfill(11)
'000luoahong'
#width小于等于字符串长度
>>> name.zfill(8)
'luoahong'
>>>
Python 相关文章推荐
Python中的异常处理简明介绍
Apr 13 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
Python切片索引用法示例
May 15 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
Python中文编码知识点
Feb 18 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python基于requests库爬取网站信息
Mar 02 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python3中对json格式数据的分析处理
Jan 28 Python
python连接PostgreSQL过程解析
Feb 09 #Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 #Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 #Python
python 爬取疫情数据的源码
Feb 09 #Python
python代码如何实现余弦相似性计算
Feb 09 #Python
python字符串替换re.sub()实例解析
Feb 09 #Python
Python随机数函数代码实例解析
Feb 09 #Python
You might like
一些常用的php简单命令代码集锦
2007/09/24 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
php编写简单的文章发布程序
2015/06/18 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
Python中map和列表推导效率比较实例分析
2015/06/17 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
python中time、datetime模块的使用
2020/12/14 Python
荷兰手表网站:Watch2Day
2018/07/02 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年业务工作总结
2014/11/17 职场文书
2015年新学期寄语
2015/02/26 职场文书
药店营业员岗位职责
2015/04/14 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
Redis 哨兵机制及配置实现
2022/03/25 Redis
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏