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中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
python使用sorted函数对列表进行排序的方法
Apr 04 Python
python根据日期返回星期几的方法
Jul 06 Python
Python实现数通设备端口使用情况监控实例
Jul 15 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
python读取Excel实例详解
Aug 17 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
Python根据成绩分析系统浅析
Feb 11 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
Python3 webservice接口测试代码详解
Jun 23 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连接Access数据库错误及解决方法
2013/06/20 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Python基础教程之异常详解
2019/01/10 Python
Python制作exe文件简单流程
2019/01/24 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
公司中秋节活动方案
2014/02/12 职场文书
机械专业求职信
2014/05/25 职场文书
公证委托书
2014/08/01 职场文书
销售团队获奖感言
2014/08/14 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
医德医风学习心得体会
2016/01/25 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL