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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
浅析使用Python操作文件
Jul 31 Python
python3 实现调用串口功能
Dec 26 Python
对python中return与yield的区别详解
Mar 12 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
Django如何实现密码错误报错提醒
Sep 04 Python
python爬取微博评论的实例讲解
Jan 15 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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数据库操作类代码(增,删,改,查)
2013/04/08 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
js获取单选按钮的数据
2006/11/27 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
js实现浏览本地文件并显示扩展名的方法
2015/08/17 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
不可错过的十本Python好书
2017/07/06 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
导致python中import错误的原因是什么
2020/07/01 Python
基于Python正确读取资源文件
2020/09/14 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
体育课课后反思
2014/04/24 职场文书
怎样写离婚协议书
2015/01/26 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL