玩转python之字符串逐个字符或逐词反转
众所周知,python中的字符串是无法改变的,反转一个字符串自然要创建一个拷贝;最简单的方法,当然是步长为“-1”的切片:
result = astring[::-1]
如果要是按单词来反转,需要三步完成:字符串--->单词列表、反转列表、单词列表--->字符串;
result = astring.split()
result.reverse()
result = ' '.join(result)
如果喜欢简练和紧凑的一行代码,可以这样做:result = ' '.join(astring.split()[::-1])
但是[::-1]降低了可读性,不过也可以这样写:result = ' '.join(reversed(astring.split()))
假设一下情形:在处理字符串的同时,保证不改变空格的个数,显然上述方法无法奏效,这就到了正则表达式出场的时候了:
import re
result = re.split(r'(\s+)', astring)
result.reverse()
result = ''.join(result) #注意''中间没有空格哦
同样一行也可以完成这个任务:result = ''.join(re.split(r'(\s+)', astring)[::-1])
总结:很遗憾,这篇文章起初的写法要比这样好,可由于意外丢失了未完成的初稿,倒是灵感全无,尽最大努力,写成了这样;
玩转python之字符串逐个字符或逐词反转的更多相关文章
- 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 && 合并字符串 && 将字符串逐字符或者逐词反转
去字符串两端的空格 任务: 获得一个开头和末尾都没有多余空格的字符串. 解决方案: 字符串对象的lstrip.rstrip和strip 方法正是为这种任务而设计的.这几个方法都不需要参数,它们会直接返 ...
- Python字符串逐字符或逐词反转方法
Python字符串逐字符或逐词反转方法 这篇文章主要介绍了Python字符串逐字符或逐词反转方法,本文对逐字符或逐词分别给出两种方法,需要的朋友可以参考下 目的 把字符串逐字符或逐词反转过来,这个蛮有 ...
- 【python】-- 字符串、字符编码与转码
字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可:访问子字符串,可以使用方括号来截取字符串: var1 ...
- python 判断字符串中字符类型的常用方法
s为字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isup ...
- python统计字符串中字符个数
str = "xxx" result = {} for i in set(str):#set将字符串转为集合对象,用于去重,减少计算量 result[i] = str.count( ...
- python非字符串与字符产链连接
第一种办法: "hello" +' '+str(110) 输出结果: 'hello 110' 第二种办法: import numpy x = 110 print 'hello(%d ...
- JavaScript字符串和字符数组
字符串 字符串与字符数组: 字符串:var a = 'ddd'; 字符数组:var arr = 'f','o','o' 相同点: 1.都是类数组 2.都有length属性 3.都有indexOf()和 ...
- Python中的字符串与字符编码
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...
- 【转】Python中的字符串与字符编码
[转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...
随机推荐
- 如何用Excel直接查询Oracle中的数据(转)
将Oracle中查询的数据保存为Excel文件,通常使用的是PL/SQL Developer. 其实,Excel可直接写SQL语句查询Oracle中数据,在这里,用到ODBC驱动.详细步骤如下: 一. ...
- 《高性能 JavaScript》读书笔记(一)
一. 加载和执行——优化JavaScript规则: 1. 将脚本放在底部:2. 减少页面中外链脚本文件的数量: 比如,下载单个100kb的文件将比下载4个25kb的文件更快.这个可以通过离线打包工具或 ...
- 独立博客网站FansUnion.cn操作2多年的经验和教训以及未来计划
今天,我把运营了2年的独立博客站点FansUnion给"归零"了. 2012年6月.我成功搭建了自己的博客站点FansUnion.cn,这是因为自己的不懈努力和时代发展成就的 ...
- hdu Rescue (bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242 简单优先队列搜索,自己好久不敲,,,,,手残啊,,,,orz 代码: #include < ...
- poj 1061青蛙的约会
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 90083 Accepted: 16257 Descripti ...
- linux_java_redis_postgresql_常用命令
redis 常用语法telnet 192.168.18.210 6379keys *llen队列名称llen 队列名称 postgresql常用语法psql -h192.168.18.210 -Up ...
- java_部署jar
javaw -ms100m -mx256m -jar MyApp.jar 上面指定了使用最小100M最大256M内存. 4)如果main函数要带参数 java -mss10m -mx300m -jar ...
- HDU4405-Aeroplane chess(可能性DP需求预期)
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- AJAX及其跨域的主要解决方法
AJAX = Asynchronous JavaScript andXML(异步的 JavaScript 和 XML).通过在后台与服务器进行少量数据交换,使网页实现异步更新.要明白异步交互可以通过同 ...
- cmd介面,进adb命令提示符error
有几个操作的电话系统测试,需要输入adb命令时出现了头疼的事,当输入命令,一个直接报执行:error 推荐处理的方法: 1.当然就是关机重新启动.之前我是这样,挺麻烦.必进在win7上输入命令费时间. ...