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妙用之编码的转换详解
Apr 21 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
python实现猜数字小游戏
Mar 24 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
Python API自动化框架总结
Nov 12 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
keras多显卡训练方式
Jun 10 Python
python Matplotlib模块的使用
Sep 16 Python
python 解决微分方程的操作(数值解法)
May 26 Python
如何在Python项目中引入日志
May 31 Python
Python实现对齐打印 format函数的用法
Apr 28 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遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
php unlink()函数使用教程
2018/07/12 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python 性能优化技巧总结
2016/11/01 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
应届生程序员求职信
2013/11/05 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
财务工作检讨书
2014/10/29 职场文书
销售业务员岗位职责
2015/02/13 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
pycharm无法安装cv2模块问题
2022/05/20 Python
全网非常详细的pytest配置文件
2022/07/15 Python