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 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
Python中zfill()方法的使用教程
May 20 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
Python3使用requests发闪存的方法
May 11 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
python通过实例讲解反射机制
Oct 17 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
python微信公众号开发简单流程实现
Mar 09 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
神经网络训练采用gpu设置的方式
Mar 03 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中数组首字符过滤功能代码
2012/07/31 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
PHP的全局错误处理详解
2016/04/25 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
python第三方库学习笔记
2020/02/07 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
Django URL参数Template反向解析
2020/11/24 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
初中生学习的自我评价
2013/11/14 职场文书
委托证明的格式
2014/01/10 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
利群广告词
2014/03/20 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
支部书记四风对照材料
2014/08/28 职场文书
法定授权委托证明书
2014/09/27 职场文书
学校学期工作总结
2015/08/13 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL