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版
Dec 07 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python转换时间的图文方法
Jul 01 Python
Django单元测试工具test client使用详解
Aug 02 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
移除Selenium中window.navigator.webdriver值
Jun 10 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
Linux下多个Python版本安装教程
2018/08/15 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python实现邮件自动发送
2019/08/10 Python
python3使用GUI统计代码量
2019/09/18 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
枚举与#define宏的区别
2014/04/30 面试题
装饰工程师岗位职责
2014/06/08 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
Python基础之数据结构详解
2021/04/28 Python