Python字符串逐字符或逐词反转方法


Posted in Python onMay 21, 2015

目的

把字符串逐字符或逐词反转过来,这个蛮有意思的。

方法

先看逐字符反转吧,第一种设置切片的步长为-1

revchars=astring[::-1]

In [65]: x='abcd'
In [66]: x[::-1]

Out[66]: 'dcba'

第二种做法是采用reversed(),注意它返回的是一个迭代器,可以用于循环或传递给其它的“累加器”,不是一个已完成的字符串。

revchars=''.join(reversed(astring))
In [56]: y=reversed(x)
In [57]: y

Out[57]: <reversed object at 0x058302F0>
In [58]: ''.join(y)

Out[58]: 'dcba'

接着来看逐词反转。

第一种做法,创建一个列表,将列表反转,用join方法合并

In [38]: s='Today is really a good day'
In [39]: rev=s.split()
In [40]: rev

Out[40]: ['Today', 'is', 'really', 'a', 'good', 'day']
In [41]: rev.reverse()
In [42]: rev

Out[42]: ['day', 'good', 'a', 'really', 'is', 'Today']
In [45]: ' '.join(rev)

Out[45]: 'day good a really is Today'

也有一行解决的代码:

rev=' '.join(s.split()[::-1])

第二种做法,可以不改变原先的空格,采用正则式来做:
In [46]: import re
In [47]: rev=re.split(r'(\s+)',s)
In [48]: rev

Out[48]: ['Today', ' ', 'is', ' ', 'really', ' ', 'a', ' ', 'good', ' ', 'day']
In [49]: rev.reverse()
In [50]: rev

Out[50]: ['day', ' ', 'good', ' ', 'a', ' ', 'really', ' ', 'is', ' ', 'Today']
In [51]: rev=''.join(rev)
In [52]: rev

Out[52]: 'day good a really is Today'

可以考虑采用reversed()来代替可读性较差的[::-1]

revwords=' '.join(reversed(s.split()))
revwords=''.join(reversed(re.split(r'(\s+)',s)))
Python 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
python中defaultdict的用法详解
Jun 07 Python
Python sqlite3事务处理方法实例分析
Jun 19 Python
Python3 处理JSON的实例详解
Oct 29 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
Python析构函数__del__定义原理解析
Nov 20 Python
Python合并字符串的3种方法
May 21 #Python
在Python中使用sort()方法进行排序的简单教程
May 21 #Python
Python去除字符串两端空格的方法
May 21 #Python
在Python中处理列表之reverse()方法的使用教程
May 21 #Python
Python中字符串对齐方法介绍
May 21 #Python
在Python的列表中利用remove()方法删除元素的教程
May 21 #Python
Python检测一个对象是否为字符串类的方法
May 21 #Python
You might like
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
python生成随机mac地址的方法
2015/03/16 Python
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
实例讲解python中的协程
2018/10/08 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
python实现与redis交互操作详解
2020/04/21 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
运动会入场词100字
2014/02/06 职场文书
经典公益广告词
2014/03/13 职场文书
查摆剖析材料范文
2014/09/30 职场文书
语文教师求职信范文
2015/03/20 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
Python re.sub 反向引用的实现
2021/07/07 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python