详解Python核心对象类型字符串


Posted in Python onFebruary 11, 2018

Python的字符串的特点

  • Python与C语言,Java语言都不一样,没有单个字符,只有一个有一个字符的字符串。
  • 字符串对象不可修改,属于不可变类型
  • 字符串和列表,元组都从属于序列这个对象类别。所以序列支持的操作,字符串也支持。
  • 用单引号和双引号表示都行,并列的字符串串常量会自动合并,不需要显式的用加号表示。
  • 单双引号里面的特殊字符必须用转义序列表示,比如”,',\都需要在前面加个、,但是在三引号里面不需要转义。

Python的字符串的支持的基本操作

  • 支持序列的操作,比如len(‘abc')取长度
  • Python不允许混合数字和字符串的加法,比如9+'3'不会转成字符串,这点和Java不一样。
  • 分片通过偏移来指定分片的大小,[偏移A:偏移B:偏移C]从左到右偏移为正,从右到左偏移为负。偏移A省略表示最左端,偏移B省略表示最右端,如[1:]表示从索引为1到最右端。分片创建一个新的对象返回,所以用[:]可以实现拷贝。分片偏移C表示步进,从左端和右端的区间复制索引相差为步进的元素,组成新对象返回。
  • 修改字符串会产生一个新的字符串对象,这时候可能会有疑问,这样不是效率很低吗?在JAVA中确实是这样,如果用+号来合并字符串就会产生一个新对象,所以在JAVA中一般用StringBuilder避免产生过多的对象,但是在Python中没被变量引用的对象会立即回收掉空间,新对象会重用回收的空间。所以效率并不会很低。

Python的字符串转换

  • 数字与字符串之间的转换:通过内置函数int(‘42'),str(42),float(‘42')之类的来转换
  • 字符串与ASCII码之间的转换:ord(‘323')将字符串转为ASCII码,chr(23)将ASCII码转换为字符串

字符串方法

  • 修改字符串:通过合并+和分片[:]来修改,另一种是通过字符串的方法来修改。replace(‘goal','str')把字符串中的'goal'替换成'str'。find(‘index')返回字符串'index'开始的索引。list(‘sds')将字符串'sds'转换成列表['s','d','s'],这就变成了可变对象类型,可以直接对其进行多次修改,再调用”.join(列表)转换成字符串方法这比上面多次合并或切片效率要高。
  • 文本解析:split(”)方法可以将文本切割成列表。
  • 其他方法:rstrip()方法清除每行末尾空白,endswith(‘w')判断是否以'w'结尾和startswith(‘t')是否以't'开头。
  • 字符串不支持模式,需要使用Python的re标准库模块。

字符串格式化

Python支持在字符串放入%d,%s来实现类型替换,类似于C的printf。在字符串后面添加% 字符串 实现指定字符串替换,多个字符串要用()括起来。

基于字典的字符格式化

插入字符串的不再是固定的%d,%s而是%(字典的键)。替换的就是字典的值,这样有一个好处就是能把整个字符串中的对应字典键的字符串都替换成字典键对应的值。

字符串格式化调用方法

前面的都是通过表达式来进行字符串格式化。这里是通过字符串的方法进行格式化。这就和Java的占位符差不多了,template='{0},{1},{2}',template.format('s','d','s')来进行格式化。

Python 相关文章推荐
使用python 获取进程pid号的方法
Mar 10 Python
python基础教程之自定义函数介绍
Aug 29 Python
Python中关于使用模块的基础知识
May 24 Python
Python的string模块中的Template类字符串模板用法
Jun 27 Python
Python AES加密模块用法分析
May 22 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python爬取12306车次信息代码详解
Aug 12 Python
python raise的基本使用
Sep 10 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
python使用json序列化datetime类型实例解析
Feb 11 #Python
Python中pow()和math.pow()函数用法示例
Feb 11 #Python
Python反射的用法实例分析
Feb 11 #Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 #Python
python编程嵌套函数实例代码
Feb 11 #Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 #Python
Django自定义manage命令实例代码
Feb 11 #Python
You might like
php 进度条实现代码
2009/03/10 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
php日期操作技巧小结
2016/06/25 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
如何在pycharm中安装第三方包
2020/10/27 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
优秀教师事迹简介
2014/02/02 职场文书
职工运动会感言
2014/02/07 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
源码安装apache脚本部署过程详解
2022/09/23 Servers