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 相关文章推荐
wxPython学习之主框架实例
Sep 28 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
Atom的python插件和常用插件说明
Jul 08 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
利用Python实现Picgo图床工具
Nov 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
记录mysql性能查询过程的使用方法
2013/05/02 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
微信小程序页面渲染实现方法
2019/11/06 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
python制作最美应用的爬虫
2015/10/28 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
解释一下Windows的消息机制
2014/01/30 面试题
车间班长岗位职责
2013/11/30 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
与死神共舞观后感
2015/06/15 职场文书
公司借款担保书
2015/09/22 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
python实现进度条的多种实现
2021/04/29 Python
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python