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 相关文章推荐
Python3.6正式版新特性预览
Dec 15 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python探索之SocketServer详解
Oct 28 Python
python抓取网页中链接的静态图片
Jan 29 Python
python使用生成器实现可迭代对象
Mar 20 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
如何使用repr调试python程序
Feb 28 Python
python实现感知机模型的示例
Sep 30 Python
用python制作个视频下载器
Feb 01 Python
Python中的datetime包与time包包和模块详情
Feb 28 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的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python 实现归并排序算法
2012/06/05 Python
Python实现的二维码生成小软件
2014/07/11 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
django 取消csrf限制的实例
2020/03/13 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
精神文明单位申报材料
2014/05/02 职场文书
欢度春节标语
2014/07/01 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
工作年限证明模板
2014/11/01 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
员工升职自我评价
2019/03/26 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers