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 相关文章推荐
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
如何在python中写hive脚本
Nov 08 Python
Python接口开发实现步骤详解
Apr 26 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 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
php explode函数实例代码
2012/02/27 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
layui 中select下拉change事件失效的解决方法
2019/09/20 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python 操作hive pyhs2方式
2019/12/21 Python
python实现人脸签到系统
2020/04/13 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
高中家长寄语
2014/04/02 职场文书
人事文员岗位职责
2015/02/04 职场文书
信用卡工作证明范本
2015/06/19 职场文书
Python中time标准库的使用教程
2022/04/13 Python