• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中常用操作字符串的函数与方法总结

Python中常用操作字符串的函数与方法总结

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python 字符串函数,python字符串长度函数,字符串替换函数python,python字符串反转函数,python字符串处理函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来。这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了;如果这些字符顺序发生变化了,也成为了一个新字符串。

在 Python 中,把像字符串这样的对象类型(后面还会冒出来类似的其它有这种特点的对象类型,比如列表),统称为序列。顾名思义,序列就是“有序排列”。

比如水泊梁山的 108 个好汉(里面分明也有女的,难道女汉子是从这里来的吗?),就是一个“有序排列”的序列。从老大宋江一直排到第 108 位金毛犬段景住。在这个序列中,每个人有编号,编号和每个人一一对应。1 号是宋江,2 号是卢俊义。反过来,通过每个人的姓名,也能找出他对应的编号。武松是多少号?14 号。李逵呢?22 号。

在 Python 中,给这些编号取了一个文雅的名字,叫做索引(别的编程语言也这么称呼,不是 Python 独有的。)。

索引和切片
前面用梁山好汉的为例说明了索引。再看 Python 中的例子:

>>> lang = "study Python"
>>> lang[0]
's'
>>> lang[1]
't'
</div>

有一个字符串,通过赋值语句赋给了变量 lang。如果要得到这个字符串的第一个单词 s,可以用 lang[0]。当然,如果你不愿意通过赋值语句,让变量 lang 来指向那个字符串,也可以这样做:

>>> "study Python"[0]
's'
</div>

效果是一样的。因为 lang 是标签,就指向了 "study Python" 字符串。当让 Python 执行 lang[0] 的时候,就是要转到那个字符串对象,如同上面的操作一样。只不过,如果不用 lang 这么一个变量,后面如果再写,就费笔墨了,要每次都把那个字符串写全了。为了省事,还是复制给一个变量吧。变量就是字符串的代表了。

字符串这个序列的排序方法跟梁山好汉有点不同,第一个不是用数字1表示,而是用数字 0 表示。不仅仅 Python,其它很多语言都是从 0 开始排序的。为什么这样做呢?这就是规定。当然,这个规定是有一定优势的。此处不展开,有兴趣的网上去 google 一下,有专门对此进行解释的文章。

0 1 2 3 4 5 6 7 8 9 10 11
s t u d y l p y t h o n


上面的表格中,将这个字符串从第一个到最后一个进行了排序,特别注意,两个单词中间的那个空格,也占用了一个位置。

通过索引能够找到该索引所对应的字符,那么反过来,能不能通过字符,找到其在字符串中的索引值呢?怎么找?

>>> lang.index("p")
6
</div>

就这样,是不是已经能够和梁山好汉的例子对上号了?只不过区别在于第一个的索引值是 0。

如果某一天,宋大哥站在大石头上,向着各位弟兄大喊:“兄弟们,都排好队。”等兄弟们排好之后,宋江说:“现在给各位没有老婆的兄弟分配女朋友,我这里已经有了名单,我念叨的兄弟站出来。不过我是按照序号来念的。第 29 号到第 34 号先出列,到旁边房子等候分配女朋友。”

在前面的例子中 lang[1] 能够得到原来字符串的第二个字符 t,就相当于从原来字符串中把这个“切”出来了。不过,我们这么“切”却不影响原来字符串的完整性,当然可以理解为将那个字符 t 赋值一份拿出来了。

那么宋江大哥没有一个一个“切”,而是一下将几个兄弟叫出来。在 Python 中也能做类似事情。

>>> lang
'study Python'  #在前面“切”了若干的字符之后,再看一下该字符串,还是完整的。
>>> lang[2:9]
'udy pyt'
</div>

通过 lang[2:9]要得到部分(不是一个)字符,从返回的结果中可以看出,我们得到的是序号分别对应着 2,3,4,5,6,7,8(跟上面的表格对应一下)字符(包括那个空格)。也就是,这种获得部分字符的方法中,能够得到开始需要的以及最后一个序号之前的所对应的字符。有点拗口,自己对照上面的表格数一数就知道了。简单说就是包括开头,不包括结尾。

上述,不管是得到一个还是多个,通过索引得到字符的过程,称之为切片。

切片是一个很有意思的东西。可以“切”出不少花样呢?

>>> lang
'study Python'
>>> b = lang[1:]  # 得到从 1 号到最末尾的字符,这时最后那个需要不用写
>>> b
'tudy Python'
>>> c = lang[:]  # 得到所有字符
>>> c
'study Python'
>>> d = lang[:10]  # 得到从第一个到 10 号之前的字符
>>> d
'study pyth'
</div>

在获取切片的时候,如果分号的前面或者后面的序号不写,就表示是到最末(后面的不写)或第一个(前面的不写)

lang[:10]的效果和 lang[0:10]是一样的。

>>> e = lang[0:10]
>>> e
'study pyth'
</div>

那么,lang[1:]和 lang[1:11]效果一样吗?请思考后作答。

>>> lang[1:11]
'tudy pytho'
>>> lang[1:]
'tudy python'
</div>

果然不一样,你思考对了吗?原因就是前述所说的,如果分号后面有数字,所得到的切片,不包含该数字所对应的序号(前包括,后不包括)。那么,是不是可以这样呢?lang[1:12],不包括 12 号(事实没有 12 号),是不是可以得到 1 到 11 号对应的字符呢?

>>> lang[1:12]
'tudy python'
>>> lang[1:13]
'tudy python'
</div>

果然是。并且不仅仅后面写 12,写 13,也能得到同样的结果。但是,我这个特别要提醒,这种获得切片的做法在编程实践中是不提倡的。特别是如果后面要用到循环的时候,这样做或许在什么时候遇到麻烦。

如果在切片的时候,冒号左右都不写数字,就是前面所操作的 c = lang[:],其结果是变量 c 的值与原字符串一样,也就是“复制”了一份。注意,这里的“复制”我打上了引号,意思是如同复制,是不是真的复制呢?可以用下面的方式检验一下

>>> id(c)
3071934536L
>>> id(lang)
3071934536L
</div>

id()的作用就是查看该对象在内存地址(就是在内存中的位置编号)。从上面可以看出,两个的内存地址一样,说明 c 和 lang 两个变量指向的是同一个对象。用 c=lang[:]的方式,并没有生成一个新的字符串,而是将变量 c 这个标签也贴在了原来那个字符串上了。

>>> lang = "study python"
>>> c = lang
</div>

如果这样操作,变量 c 和 lang 是不是指向同一个对象呢?或者两者所指向的对象内存地址如何呢?看官可以自行查看。

字符串基本操作
字符串是一种序列,所有序列都有如下基本操作:

  • len():求序列长度
  • :连接 2 个序列
  • : 重复序列元素
  • in :判断元素是否存在于序列中
  • max() :返回最大值
  • min() :返回最小值
  • cmp(str1,str2) :比较 2 个序列值是否相同

通过下面的例子,将这几个基本操作在字符串上的使用演示一下:

“+”连接字符串

>>> str1 + str2
'abcdabcde'
>>> str1 + "-->" + str2
'abcd-->abcde'
</div>

这其实就是拼接,不过在这里,看官应该有一个更大的观念,我们现在只是学了字符串这一种序列,后面还会遇到列表、元组两种序列,都能够如此实现拼接。

in

>>> "a" in str1
True
>>> "de" in str1
False
>>> "de" in str2
True
</div>

in 用来判断某

您可能想查找下面的文章:

  • python中根据字符串调用函数的实现方法
  • Python中常用操作字符串的函数与方法总结
  • python中常用检测字符串相关函数汇总
  • Python字符串和文件操作常用函数分析
  • Python字符串和文件操作常用函数分析
  • Python内置的字符串处理函数详细整理(覆盖日常所用)
  • Python内置的字符串处理函数详细整理(覆盖日常所用)
  • 浅析python 内置字符串处理函数的使用方法
  • Python内置的字符串处理函数整理
  • Python内置的字符串处理函数整理

相关文章

  • 双向RNN:bidirectional_dynamic_rnn()函数的使用详解
  • Python解析nginx日志文件
  • 在Python中使用__slots__方法的详细教程
  • Python实现短网址ShortUrl的Hash运算实例讲解
  • python网络编程之数据传输UDP实例分析
  • 解析Python中while true的使用
  • python中self原理实例分析
  • python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
  • 12步教你理解Python装饰器
  • 详解Python的Django框架中的中间件

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python正则表达式实现截取成对括号的方法
    • python基于property()函数定义属性
    • 跟老齐学Python之字典,你还记得吗?
    • kNN算法python实现和简单数字识别的方法
    • Python里隐藏的“禅”
    • python实现k均值算法示例(k均值聚类算法)
    • Python使用email模块对邮件进行编码和解码的实例教程
    • 在Python3中使用asyncio库进行快速数据抓取的教程
    • Python实现截屏的函数
    • python使用7z解压软件备份文件脚本分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有