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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
python从网络读取图片并直接进行处理的方法
May 22 Python
python字典快速保存于读取的方法
Mar 23 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
python实现windows下文件备份脚本
May 27 Python
python实现机器学习之元线性回归
Sep 06 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
python基于opencv检测程序运行效率
Dec 28 Python
django项目中新增app的2种实现方法
Apr 01 Python
jupyter notebook清除输出方式
Apr 10 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
克隆一个新项目的快捷方式
2013/04/10 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
JS重载实现方法分析
2016/12/16 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
python读取图片任意范围区域
2019/01/23 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python实现自动访问网页的例子
2020/02/21 Python
老公给老婆的道歉信
2014/01/10 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
教师辞职信范文
2015/02/28 职场文书
亮剑观后感500字
2015/06/05 职场文书
我的长征观后感
2015/06/09 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python