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利用datetime模块计算时间差
Aug 04 Python
Python使用defaultdict读取文件各列的方法
May 11 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Django如何将URL映射到视图
Jul 29 Python
Python  Django 母版和继承解析
Aug 09 Python
python线程中的同步问题及解决方法
Aug 29 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
python连接mysql数据库并读取数据的实现
Sep 25 Python
分享7个 Python 实战项目练习
Mar 03 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
php发送与接收流文件的方法
2015/02/11 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
javascript multibox 全选
2009/03/22 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
javascript中的this详解
2014/12/08 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
javascript表单正则应用
2017/02/04 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python的命名规则知识点总结
2019/10/04 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
员工离职通知函
2015/04/25 职场文书
python tkinter实现定时关机
2021/04/21 Python