python逐个读取字符_玩转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 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中的字符编码是个老生常 ...

随机推荐

Git--分布式版本控制系统

使用Git实现多人协作开发 1.简述 每创建一个大的web项目都会有团队协作完成, 然这个过程有可能就像毕业生写论文的过程, 这个过程会有很多...修改的版本, 我们的项目也是会经过无休止的改需求, ...

laravel Restful

参考:http://www.cnblogs.com/youxin/p/3967274.html http://scotch.io/tutorials/simple-laravel-crud-with- ...

转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)

maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List userList= new Array ...

上传图片预览,支持IE6

//说明:图片上传预览插件 //上传的时候可以生成固定宽高范围内的等比例缩放图 //参数设置: //width 存放图片固定大小容器的宽 //height 存放图片固定大小容器的高 //imgDiv ...

那些容易遗忘的web前端问题

背景: 年底将至,本人这只才出门的前端菜鸟,终于有空闲的时间来整理一下最近投简历时出现的问题.有的是经常使用但是没有仔细留意造成的:有的是个人认为根本没人使用而忽略的.为了下次不出现这种错误,进行一下 ...

MVC框架实例构建

转自:http://www.cnblogs.com/levenyes/p/3290885.html MVC全名是Model View Controller,是模型(model)-视图(view)-控制 ...

Anaconda3下安装Anaconda2

一.下载软件 下载Anaconda Python3.6版本和Anaconda Python2.7版本.下载地址:https://www.anaconda.com/download/ 下载需要FQ,也可 ...

洛谷P2894 [USACO08FEB]酒店Hotel [线段树]

题目传送门 酒店 题目描述 The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and ...

java 使用正则判断是不是一个数字

public class Numeric { public static void main(String[] args) { String string = "-1234.15" ...

Reactor模式,或者叫反应器模式 - 为什么用多路io复用提供吞吐量

Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些.通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或 ...

你可能感兴趣的:(python逐个读取字符)