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中操作列表之list.extend()方法的使用
May 20 Python
Python selenium如何设置等待时间
Sep 15 Python
K-近邻算法的python实现代码分享
Dec 09 Python
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
基于python实现聊天室程序
Jul 27 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
python实现梯度下降和逻辑回归
Mar 24 Python
python绘图subplots函数使用模板的示例代码
Apr 30 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
Session保存到数据库的php类分享
2011/10/24 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
python安装与使用redis的方法
2016/04/19 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
优秀团员事迹材料1000字
2014/08/20 职场文书
大学学生会辞职信
2015/05/13 职场文书
感恩教育观后感
2015/06/17 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书