Python中关于字符串对象的一些基础知识


Posted in Python onApril 08, 2015

Python的字符串被划分为不可变序列的类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在本地进行修改。

基本操作

字符串可以通过+操作符进行合并,可以使用*运算符进行重复。
 

>>>len("abc")
3
>>>'abc'+'def'
'abcdef'
>>>'NI!'*4
'NI!NI!NI!NI!'

字符串内部的一个反斜杠“\”可允许把字符串放于多行。
 

>>>str = "aaa\
  ....bbb\
  ....ccc\
  ....ddd"
>>>str
aaabbbcccddd

索引和分片

在Python中,字符串中的字符是通过索引提取的。
分片X[I:J],表示“取出在X中从偏移量为I,直到但不包括偏移量为J的内容”。结果就是返回一个新的对象。
在一个分片中,左边界默认为0,右边界默认为分片序列的长度。
 

S = 'Spam'
>>>S[1:]
'pam'
>>>S
'Spam'
>>>S[:3]
'Spa'
>>>S[:-1]
'Spa'
>>>S[:]
'Spam'
S[:]实现了一个完全的顶层的序列对象的拷贝-一个有相同值,但是是不同内存片区的对象。
X[I:J:K]表示“索引x对象中的元素,从偏移为I直到偏移为J-1,每隔K元素索引一次“,第三个限制K,默认为1,表示步进。
也可以使用负数作为步进,S[::-1]的作用实际上是将序列进行发转。
 
>>>S = 'hello'
>>>S[::-1]
'olleh'

字符串转化工具

int函数将字符串转换为数字,str函数将数字转换为字符串表达形式。repr函数也能够将一个对象转换为其字符串形式,然后这些返回的对象将作为代码的字符串,可以重新创建对象。

不可变性

字符串属于不可变序列,即不能在原地修改一个字符串,例如,给一个索引进行赋值。若要改变一个字符串,需要利用合并,分片这样的工具来建立并赋值给一个新的字符串,倘若必要的话,还要将这个结果赋值给字符串最初的变量名。
 

>>>S = 'spam'
>>>S[0] = "x"
#不允许修改S的值
 
>>>S = S + "SPAM"
>>>S
'spamSPAM'
 
>>>S = 'splot'
>>>S = S.replace('pl', 'plmal')
>>>S
'splmalot'
Python 相关文章推荐
python脚本实现查找webshell的方法
Jul 31 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
Python之列表实现栈的工作功能
Jan 28 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
python制作英语翻译小工具代码实例
Sep 09 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python接口测试数据库封装实现原理
May 09 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
Python MySQLdb模块连接操作mysql数据库实例
Apr 08 #Python
python单例模式实例分析
Apr 08 #Python
在Docker上部署Python的Flask框架的教程
Apr 08 #Python
python threading模块操作多线程介绍
Apr 08 #Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 #Python
python中Genarator函数用法分析
Apr 08 #Python
探索Python3.4中新引入的asyncio模块
Apr 08 #Python
You might like
php录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
浅谈php的优缺点
2015/07/14 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
js select option对象小结
2013/12/20 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
python发布模块的步骤分享
2014/02/21 Python
python的迭代器与生成器实例详解
2014/07/16 Python
python实现一次创建多级目录的方法
2015/05/15 Python
python发送邮件功能实现代码
2016/07/15 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
怎样自定义一个异常类
2016/09/27 面试题
大学生期末自我鉴定
2014/02/01 职场文书
主题婚礼策划方案
2014/02/10 职场文书
战略合作协议书范本
2014/04/18 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL