详解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 获取et和excel的版本号
Apr 09 Python
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
python实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
对python 通过ssh访问数据库的实例详解
Feb 19 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
三步实现Django Paginator分页的方法
Jun 11 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
基于python实现操作redis及消息队列
Aug 27 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Python  lambda匿名函数和三元运算符
Apr 19 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
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
js实现可爱的气泡特效
2020/09/05 Javascript
python中MySQLdb模块用法实例
2014/11/10 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
python进行TCP端口扫描的实现
2018/12/21 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
将相和教学反思
2014/02/04 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
追悼会悼词大全
2015/06/23 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang
MSSQL基本语法操作
2022/04/11 SQL Server