Python实现的从右到左字符串替换方法示例


Posted in Python onJuly 06, 2018

本文实例讲述了Python实现的从右到左字符串替换方法。分享给大家供大家参考,具体如下:

一 . 前言

需要用到,但是发现python没有从右边开始替换的内置方法,默认的replace只是从左边开始,就索性自己写个,有需求的自己可以在此基础上搞个python hack,给str增加个rreplace方法。

二. 实现

利用python 的其它内置方法,11行代码就可以了

def rreplace(self, old, new, *max):
  count = len(self)
  if max and str(max[0]).isdigit():
    count = max[0]
  while count:
    index = self.rfind(old)
    if index >= 0:
      chunk = self.rpartition(old)
      self = chunk[0] + new + chunk[2]
    count -= 1
  return self

学无止境,最后搜索发现有种核心代码只有1行的实现方法

def rreplace(self, old, new, *max):
  count = len(self)
  if max and str(max[0]).isdigit():
    count = max[0]
  return new.join(self.rsplit(old, count))

三. 用法

replace 基本一致

参数:

self --  源字符串。
old  --  将被替换的子字符串。
new  --  新字符串,用于替换old子字符串。
max  --  可选字符串, 替换不超过 max 次

返回:

被替换后的字符串

举几个用例比较下就清楚了:

print rreplace("lemon tree", "e", "3")
print rreplace("lemon tree", "e", "3", 1)
print rreplace("lemon tree", "e", "3", 2)
print rreplace("lemon tree", "tree", "")
print rreplace("lemon tree", "notree", "notmatch")

运行结果:

l3mon tr33
lemon tre3
lemon tr33
lemon
lemon tree

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python3 与python2 异常处理的区别与联系
Jun 19 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
深入理解Python中变量赋值的问题
Jan 12 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
python实现装饰器、描述符
Feb 28 Python
Python定时任务sched模块用法示例
Jul 16 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python pandas 时间日期的处理实现
Jul 30 Python
Python 字典中的所有方法及用法
Jun 10 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
详解在OpenCV中如何使用图像像素
Mar 03 Python
Python用csv写入文件_消除空余行的方法
Jul 06 #Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 #Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 #Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 #Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 #Python
python selenium自动上传有赞单号的操作方法
Jul 05 #Python
python实现爬取图书封面
Jul 05 #Python
You might like
discuz的php防止sql注入函数
2011/01/17 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP引用符&的用法详细解析
2013/08/22 PHP
8个必备的PHP功能开发
2015/10/02 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python的另外几种语言实现
2015/01/29 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Django多数据库的实现过程详解
2019/08/01 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
上课打牌的检讨书
2014/02/15 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
2014年质检工作总结
2014/11/26 职场文书
2014年实习期工作总结
2014/11/27 职场文书
演讲比赛主持词
2015/06/29 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python