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 23 Python
python实现批量解析邮件并下载附件
Jun 19 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python进程池Pool应用实例分析
Nov 27 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
Mar 27 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
在Python中实现字典反转案例
Dec 05 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
python基础之匿名函数详解
Apr 21 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
PHP 快速排序算法详解
2014/11/10 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
javascript 动态创建表格
2015/01/08 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
python socket 聊天室实例代码详解
2019/11/14 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
主管会计岗位职责
2014/03/13 职场文书
精彩的广告词
2014/03/19 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
应聘教师求职信范文
2015/03/20 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL