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装饰器使用实例:验证参数合法性
Jun 24 Python
Python中对象的引用与复制代码示例
Dec 04 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
python高阶爬虫实战分析
Jul 29 Python
Django model序列化为json的方法示例
Oct 16 Python
python 日期排序的实例代码
Jul 11 Python
django框架中间件原理与用法详解
Dec 10 Python
Python-openCV开运算实例
Jul 05 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
python爬虫--selenium模块
Mar 31 Python
Python自动化爬取天眼查数据的实现
Jun 15 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php 文件上传类代码
2011/08/06 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php查看网页源代码的方法
2015/03/13 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
深入浅析Python代码规范性检测
2020/07/31 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书