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中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python使用django获取用户IP地址的方法
May 11 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python中的默认参数实例分析
Jan 29 Python
Django REST framework视图的用法
Jan 16 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
pandas 如何分割字符的实现方法
Jul 29 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
python实现磁盘日志清理的示例
Nov 05 Python
python实现图片转字符画的完整代码
Feb 21 Python
python入门之算法学习
Apr 22 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中strtotime函数使用方法详解
2011/11/27 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
js正确获取元素样式详解
2009/08/07 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
pandas的resample重采样的使用
2020/04/24 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
面试后的感谢信范文
2014/02/01 职场文书
小学信息技术教学反思
2014/02/10 职场文书
班级文化建设标语
2014/06/23 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
导游词400字
2015/02/13 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技