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 相关文章推荐
动态创建类实例代码
Oct 07 Python
Python中的并发编程实例
Jul 07 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
python 实现兔子生兔子示例
Nov 21 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
python中的3种定义类方法
Nov 27 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
php二维码生成
2015/10/19 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
html向js方法传递参数具体实现
2013/08/08 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
服务员岗位职责
2014/01/29 职场文书
党员承诺书范文
2014/05/19 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python