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程序设计入门(2)变量类型简介
Jun 16 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
SVM基本概念及Python实现代码
Dec 27 Python
TensorFlow实现卷积神经网络
May 24 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
对python制作自己的数据集实例讲解
Dec 12 Python
Python中最大递归深度值的探讨
Mar 05 Python
Flask配置Cors跨域的实现
Jul 12 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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 var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
降低PHP Redis内存占用
2017/03/23 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python程序控制NAO机器人行走
2019/04/29 Python
python中def是做什么的
2020/06/10 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
法律专业实习鉴定
2013/12/22 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
网页美工求职信范文
2014/04/17 职场文书
正科级干部考察材料
2014/05/29 职场文书
预备党员转正考核材料
2014/06/03 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
2015年领班工作总结
2015/04/29 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书