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解析xml中dom元素的方法
Mar 12 Python
kafka-python批量发送数据的实例
Dec 27 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
python使用百度文字识别功能方法详解
Jul 23 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
python 简单的调用有道翻译
Nov 25 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 Python
Python 用户输入和while循环的操作
May 23 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php微信开发之关注事件
2018/06/14 PHP
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
拾金不昧的表扬信
2014/01/16 职场文书
粗加工管理制度
2014/02/04 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
公司处罚决定书
2015/06/24 职场文书
redis 查看所有的key方式
2021/05/07 Redis
MyBatis 动态SQL全面详解
2021/10/05 MySQL
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python