31个好用的 Python 字符串方法,建议收藏!
作者 | 小F
来源 | 法纳斯特
字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它。
今天,就带大家学习一下31个最重要的内置字符串方法。
希望大家能从中找到对自己有帮助的技巧。
▍1、Slicing
slicing切片,按照一定条件从列表或者元组中取出部分元素(比如特定范围、索引、分割值)
s = ' hello '
s = s[:]print(s)
# hellos = ' hello '
s = s[3:8]print(s)
# hello
▍2、strip()
strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
s = ' hello '.strip()print(s)
# hellos = '###hello###'.strip()print(s)
# ###hello###
在使用strip()方法时,默认去除空格或换行符,所以#号并没有去除。
可以给strip()方法添加指定字符,如下所示。
s = '###hello###'.strip('#')print(s)
# hello
此外当指定内容不在头尾处时,并不会被去除。
s = ' \n \t hello\n'.strip('\n')print(s)
#
# hellos = '\n \t hello\n'.strip('\n')print(s)
# hello
第一个\n前有个空格,所以只会去取尾部的换行符。
最后strip()方法的参数是剥离其值的所有组合,这个可以看下面这个案例。
s = 'www.baidu.com'.strip('cmow.')print(s)
# baidu
最外层的首字符和尾字符参数值将从字符串中剥离。字符从前端移除,直到到达一个不包含在字符集中的字符串字符为止。
在尾部也会发生类似的动作。
▍3、lstrip()
移除字符串左侧指定的字符(默认为空格或换行符)或字符序列。
s = ' hello '.lstrip()print(s)
# hello
同样的,可以移除左侧所有包含在字符集中的字符串。
s = 'Arthur: three!'.lstrip('Arthur: ')print(s)
# ee!
▍4、rstrip()
移除字符串右侧指定的字符(默认为空格或换行符)或字符序列。
s = ' hello '.rstrip()print(s)
# hello
▍5、removeprefix()
Python3.9中移除前缀的函数。
# python 3.9
s = 'Arthur: three!'.removeprefix('Arthur: ')print(s)
# three!
和strip()相比,并不会把字符集中的字符串进行逐个匹配。
▍6、removesuffix()
Python3.9中移除后缀的函数。
s = 'HelloPython'.removesuffix('Python')print(s)
# Hello
▍7、replace()
把字符串中的内容替换成指定的内容。
s = 'string methods in python'.replace(' ', '-')print(s)
# string-methods-in-pythons = 'string methods in python'.replace(' ', '')print(s)
# stringmethodsinpython
▍8、re.sub()
re是正则的表达式,sub是substitute表示替换。
re.sub则是相对复杂点的替换。
import re
s = "string methods in python"
s2 = s.replace(' ', '-')
print(s2)
# string----methods-in-pythons = "string methods in python"
s2 = re.sub("\s+", "-", s)
print(s2)
# string-methods-in-python
和replace()做对比,使用re.sub()进行替换操作,确实更高级点。
▍9、split()
对字符串做分隔处理,最终的结果是一个列表。
s = 'string methods in python'.split()print(s)
# ['string', 'methods', 'in', 'python']
当不指定分隔符时,默认按空格分隔。
s = 'string methods in python'.split(',')print(s)
# ['string methods in python']
此外,还可以指定字符串的分隔次数。
s = 'string methods in python'.split(' ', maxsplit=1)print(s)
# ['string', 'methods in python']
▍10、rsplit()
从右侧开始对字符串进行分隔。
s = 'string methods in python'.rsplit(' ', maxsplit=1)print(s)
# ['string methods in', 'python']
▍11、join()
string.join(seq)。以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串。
list_of_strings = ['string', 'methods', 'in', 'python']
s = '-'.join(list_of_strings)print(s)
# string-methods-in-pythonlist_of_strings = ['string', 'methods', 'in', 'python']
s = ' '.join(list_of_strings)print(s)
# string methods in python
▍12、upper()
将字符串中的字母,全部转换为大写。
s = 'simple is better than complex'.upper()print(s)
# SIMPLE IS BETTER THAN COMPLEX
▍13、lower()
将字符串中的字母,全部转换为小写。
s = 'SIMPLE IS BETTER THAN COMPLEX'.lower()print(s)
# simple is better than complex
▍14、capitalize()
将字符串中的首个字母转换为大写。
s = 'simple is better than complex'.capitalize()print(s)
# Simple is better than complex
▍15、islower()
判断字符串中的所有字母是否都为小写,是则返回True,否则返回False。
print('SIMPLE IS BETTER THAN COMPLEX'.islower()) # Falseprint('simple is better than complex'.islower()) # True
▍16、isupper()
判断字符串中的所有字母是否都为大写,是则返回True,否则返回False。
print('SIMPLE IS BETTER THAN COMPLEX'.isupper()) # Trueprint('SIMPLE IS BETTER THAN complex'.isupper()) # False
▍17、isalpha()
如果字符串至少有一个字符并且所有字符都是字母,则返回 True,否则返回 False。
s = 'python'
print(s.isalpha())
# Trues = '123'
print(s.isalpha())
# Falses = 'python123'
print(s.isalpha())
# Falses = 'python-123'
print(s.isalpha())
# False
▍18、isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False。
s = 'python'
print(s.isnumeric())
# Falses = '123'
print(s.isnumeric())
# Trues = 'python123'
print(s.isnumeric())
# Falses = 'python-123'
print(s.isnumeric())
# False
▍19、isalnum()
如果字符串中至少有一个字符并且所有字符都是字母或数字,则返回True,否则返回 False。
s = 'python'
print(s.isalnum())
# Trues = '123'
print(s.isalnum())
# Trues = 'python123'
print(s.isalnum())
# Trues = 'python-123'
print(s.isalnum())
# False
▍20、count()
返回指定内容在字符串中出现的次数。
n = 'hello world'.count('o')
print(n)
# 2n = 'hello world'.count('oo')
print(n)
# 0
▍21、find()
检测指定内容是否包含在字符串中,如果是返回开始的索引值,否则返回-1。
s = 'Machine Learning'
idx = s.find('a')print(idx)
print(s[idx:])
# 1
# achine Learnings = 'Machine Learning'
idx = s.find('aa')print(idx)
print(s[idx:])
# -1
# g
此外,还可以指定开始的范围。
s = 'Machine Learning'
idx = s.find('a', 2)print(idx)
print(s[idx:])
# 10
# arning
▍22、rfind()
类似于find()函数,返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。
s = 'Machine Learning'
idx = s.rfind('a')print(idx)
print(s[idx:])
# 10
# arning
▍23、startswith()
检查字符串是否是以指定内容开头,是则返回 True,否则返回 False。
print('Patrick'.startswith('P'))# True
▍24、endswith()
检查字符串是否是以指定内容结束,是则返回 True,否则返回 False。
print('Patrick'.endswith('ck'))# True
▍25、partition()
string.partition(str),有点像find()和split()的结合体。
从str出现的第一个位置起,把字符串string分成一个3 元素的元组(string_pre_str,str,string_post_str),如果string中不包含str则 string_pre_str==string。
s = 'Python is awesome!'
parts = s.partition('is')
print(parts)
# ('Python ', 'is', ' awesome!')s = 'Python is awesome!'
parts = s.partition('was')
print(parts)
# ('Python is awesome!', '', '')
▍26、center()
返回一个原字符串居中,并使用空格填充至长度width的新字符串。
s = 'Python is awesome!'
s = s.center(30, '-')print(s)
# ------Python is awesome!------
▍27、ljust()
返回一个原字符串左对齐,并使用空格填充至长度width的新字符串。
s = 'Python is awesome!'
s = s.ljust(30, '-')print(s)
# Python is awesome!------------
▍28、rjust()
返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。
s = 'Python is awesome!'
s = s.rjust(30, '-')print(s)
# ------------Python is awesome!
▍29、f-Strings
f-string是格式化字符串的新语法。
与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!
num = 1
language = 'Python'
s = f'{language} is the number {num} in programming!'print(s)
# Python is the number 1 in programming!num = 1
language = 'Python'
s = f'{language} is the number {num*8} in programming!'print(s)
# Python is the number 8 in programming!
▍30、swapcase()
翻转字符串中的字母大小写。
s = 'HELLO world'
s = s.swapcase()print(s)
# hello WORLD
▍31、zfill()
string.zfill(width)。
返回长度为width的字符串,原字符串string右对齐,前面填充0。
s = '42'.zfill(5)
print(s)
# 00042s = '-42'.zfill(5)
print(s)
# -0042s = '+42'.zfill(5)
print(s)
# +0042
往
期
回
顾
技术
用技术实现时序羽毛球动作预测
资讯
未来十年,人机交互将是重要的发展
技术
万粉博主推荐,调用AGanV2
资讯
GPT-3平替版语言模型,性能更优化
分享
点收藏
点点赞
点在看
相关文章:

《深入理解计算机系统》读书随笔-位操作
最近开始读《深入理解计算机系统》这本书。对于书中提到的从程序员的角度解读计算机系统这一说法非常感兴趣,所以决定好好读一读。从开始接触计算机编程就是站在一个高级语言的层次,虽然对编译原理,操作系统,汇编语言和计算机组成…

专访小邪:从十年技术之路看阿里技术体系的变革
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 从2008年到2018年,从阿里巴巴中间件团队到飞天八部——小邪与阿里的十年。 编者按:从2008年到2018年,从阿里巴巴中间件团队到飞天八部——小邪与阿里的十年。 2008年…

PHP SPL笔记
PHP SPL笔记作者: 阮一峰日期: 2008年7月 8日这几天,我在学习PHP语言中的SPL。这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记。不然记不住,以后要用的时候&am…

算力超越 iPhone,芯片堪比Mac,网友:“买来能干啥?”
整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)自去年“元宇宙”概念突然爆火,作为其“入门钥匙”的 AR/VR 设备也顺势成为了话题焦点,尤其在多家外媒爆料苹果也在为此发力、甚至从 Meta 挖人以争取在 2022 年正式推出时&…

ios开发日记- 5 屏幕截图
-(void)fullScreenshots{UIWindow *screenWindow [[UIApplication sharedApplication] keyWindow]; UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage …

MaxCompute助力OSS支持EB级计算力
一、 MaxCompute是什么? 你的OSS数据是否作堆积在一旁沉睡已久,存储成本变为企业负担?你是否想唤醒沉睡的数据,驱动你的业务前行?MaxCompute可以帮助你高效且低成本的解决这些问题,通过对海量数据进行分析和…

php自动加载
很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件列表。 在 PHP 5 中,不再需要这样了。可以定义一个 __autoload 函数,它会在试…

22个案例详解 Pandas 数据分析/预处理时的实用技巧,超简单
作者 | 俊欣来源 | 关于数据分析与可视化今天小编打算来讲一讲数据分析方面的内容,整理和总结一下Pandas在数据预处理和数据分析方面的硬核干货,我们大致会说Pandas计算交叉列表Pandas将字符串与数值转化成时间类型Pandas将字符串转化成数值类型Pandas当…

《mysql性能调优与架构设计》笔记: 一mysql 架构组成
2019独角兽企业重金招聘Python工程师标准>>> 2.1mysql物理文件组成 2.1.1日志文件: 1,查看mysql配置文件:mysql --verbose --help | grep -A 1 Default options; 1,错误日志:--log-error[file_name] 指定错…

发现一个可以搜索常用rpm包的地址(http://www.rpmfind.net/)
http://www.rpmfind.net/ 虽然资源不多,但也够用。 >如有问题,请联系我:easonjim#163.com,或者下方发表评论。<

PHP版UTF-8文件BOM自动检测移除程序
BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。但PHP在读取文件时会把这些字符读出,从而形成了文件 开头含有一些无法识别的字符的问题。比如用UTF-8格式保存的生成图片的PHP文件,因为文件头隐藏的BOM信息也…

java: web应用中不经意的内存泄露
前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1、定义一个类App package com.cnblogs.yjmyzz.web.controller;import java.util.Date;public class…

「游戏圈地震级消息」687亿美元,微软收购游戏巨头动视暴雪
整理 | 苏宓、禾木木 出品 | CSDN 2022年1月18日晚,一条热搜刷爆了朋友圈: 继 2018 年,微软以 75 亿美元收购全球知名的代码托管平台 GitHub 后,2022 年 1 月 18 日,微软将以 687 亿美元的价格收购著名游戏制作和发行公…

java实现用户登录注册功能(用集合框架来实现)
需求:实现用户登录注册功能(用集合框架来实现) 分析: A:需求的类和接口 1.用户类 UserBean 2.用户操作方法接口和实现类 UserDao UserDaoImpl 3.测试类 UserTest B:各个类中的东西 1.用户类UserBean: …

第3次翻译了 Pandas 官方文档,叒写了这一份R万字肝货操作!
作者 | 黄伟呢来源 | 数据分析与统计学之美今天,我继续为大家讲述Pandas如何实现R语言的相关操作。由于 Pandas 旨在提供人们使用 R 进行的大量数据操作和分析功能,因此本页开始提供更详细的 R 语言及其与 Pandas 相关的许多第三方库的介绍。与 R 和 CRA…

PHP autoload机制详解
PHP autoload机制详解 转载自 jeakcccPHP autoload机制详解(1) autoload机制概述在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这 也是OO设计…

有关博客的一些断想
作者:朱金灿来源:http://blog.csdn.net/clever101随着微博、微信等短平快社交媒体的兴起,文字相对严肃的博客毫无疑问受到很大的冲击。我在想博客会不会因此而消亡呢。我相信不会,因为喜欢轻快的文字固然是人类的天性,…

pythonl学习笔记——爬虫的基本常识
1 robots协议 Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。 如: …

hibernate相关收集
2019独角兽企业重金招聘Python工程师标准>>> 1、Hibernate SQL方言 如果出现如下错误,则可能是Hibernate SQL方言 (hibernate.dialect)设置不正确。 Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]last_ins…

盘一盘 2021 年程序员们喜欢的网站数据
作者 | 周萝卜来源 | 萝卜大杂烩世界上流量最大的网站有哪些,也许我们都能脱口而出,比如 Google,YouTube,Facebook 还有 PxxnHub 等等,今天我们就通过多个维度来看看,那些叱咤全球的流量网站!数…

烽火18台系列之十一:刚需中的刚需——网站篡改监控
网站篡改事件近些年来越演越烈,其中包括政府、教育、金融、事业企业单位等。根据国家互联网应急响应中心发布的《2015年中国互联网网络安全报告》中指出,“2015年CNCERT/CC工检测到境内被篡改的网站数量为24550个,其中境内政府网站篡改数量为…

Http与RPC通信协议的比较
OSI网络结构的七层模型 各层的具体描述如下:第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;提供标准服务,比如虚拟终端、文件以及任务的传输 和处理; 第六层:表示层 掩…

基于 Python 和 OpenCV 构建智能停车系统
作者 | 努比来源 | 小白学视觉当今时代最令人头疼的事情就是找不到停车位,尤其是找20分钟还没有找到停车位。根据复杂性和效率的不同,任何问题都具有一个或多个解决方案。目前智能停车系统的解决方案,主要包括基于深度学习实现,以…

js获取鼠标位置
1.PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化2.clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化. 可是悲剧的是,PageX只有FF…

Lua保留指定小数位数
默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一位小数 --- nNum 源数字 --- n 小数位数 function Tool. GetPreciseDecimal(nNum, n)if type(nNum)…

htaccess文件用法收集整理
1.时区设置有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。 1.SetEnv TZ Australia/Melbourne …

手把手教你使用 YOLOV5 训练目标检测模型
作者 | 肆十二来源 | CSDN博客这次要使用YOLOV5来训练一个口罩检测模型,比较契合当下的疫情,并且目标检测涉及到的知识点也比较多。先来看看我们要实现的效果,我们将会通过数据来训练一个口罩检测的模型,并用pyqt5进行封装&#x…

数据仓库数据模型之:极限存储--历史拉链表
摘要: 在数据仓库的数据模型设计过程中,经常会遇到文内所提到的这样的需求。而历史拉链表,既能满足对历史数据的需求,又能很大程度的节省存储资源。在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较…

super的用法(带了解)
super的用法(带了解) super的用法(带了解)posted on 2018-05-11 21:31 leolaosao 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/leolaosao/p/9026686.html

Posted content type isn't multipart/form-data
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48712507 在有文件上传的表单提交过程中,搞不好就会报Posted content type isnt multipart/form-data的错误。 解决办法 <form class"form-…