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兔子毒药问题实例分析
Mar 05 Python
python实现数组插入新元素的方法
May 22 Python
Python判断值是否在list或set中的性能对比分析
Apr 16 Python
简单谈谈python的反射机制
Jun 28 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
使用Python 统计高频字数的方法
Jan 31 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
python 实现插入排序算法
2012/06/05 Python
Python Requests 基础入门
2016/04/07 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
使用Python 统计高频字数的方法
2019/01/31 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
毕业生教师求职信
2013/10/20 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
技术比武方案
2014/05/19 职场文书
课外小组活动总结
2014/08/27 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
北大自主招生自荐信
2015/03/04 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python