Python字符串逐字符或逐词反转方法

这篇文章主要介绍了Python字符串逐字符或逐词反转方法,本文对逐字符或逐词分别给出两种方法,需要的朋友可以参考下

目的

把字符串逐字符或逐词反转过来,这个蛮有意思的。

方法

先看逐字符反转吧,第一种设置切片的步长为-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]:

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字符串逐字符或逐词反转方法的更多相关文章

  1. 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 && 合并字符串 && 将字符串逐字符或者逐词反转

    去字符串两端的空格 任务: 获得一个开头和末尾都没有多余空格的字符串. 解决方案: 字符串对象的lstrip.rstrip和strip 方法正是为这种任务而设计的.这几个方法都不需要参数,它们会直接返 ...

  2. 玩转python之字符串逐个字符或逐词反转

    众所周知,python中的字符串是无法改变的,反转一个字符串自然要创建一个拷贝:最简单的方法,当然是步长为“-1”的切片: result = astring[::-1] 如果要是按单词来反转,需要三步 ...

  3. python文本 字符串逐字符反转以及逐单词反转

    python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...

  4. python 字符串大小写转换(不能使用swapcase()方法)

    python 3字符串大小写转换 要求不能使用swapcase()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wa ...

  5. python 字符串占位符的使用

    name2='我是{} 我的专业是 {}'.format('张三','计算机科学技术')print(name2)

  6. Python字符串列表元祖字典的公共方法

    运算符 运算符 Python 表达式 结果 描述 支持的数据类型 + [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串.列表.元组 * 'Hi!' * 4 ['Hi!', 'Hi ...

  7. python字符串转换成变量的几种方法

    个人比较喜欢用第三种方法 var = "This is a string" varName = 'var' s= locals()[varName] s2=vars()[varNa ...

  8. python字符串、字符串处理函数及字符串相关操作

    python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...

  9. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

随机推荐

  1. H5之postMessage

    对于跨域我们有很多的解决方案,今天我来分享一下postMessage的那点事,postMessage是html5新增的一个解决跨域的一个方法,不过很可惜万恶的ie6,7不支持 postMessage( ...

  2. gdb设置条件断点

    b +行号 if i==9:设置条件断点 finish:执行到当前函数返回处(退出函数) bt:打印栈帧关系

  3. vim 操作命令大全

     转子:https://www.cnblogs.com/yangjig/p/6014198.html 和 https://blog.csdn.net/u010956473/article/detail ...

  4. linux实操_shell流程控制

    if判断: 基本语法: if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 fi 实例:请编写一个shell程序,如果输入的参数,大于60,则输出“及格了”,如果小 ...

  5. linux基础知识和常用命令

    1.修改主机名 切换到root,然后执行 vim /etc/sysconfig/network,进入其中,更改hostname即可.insert进入修改,esc+:,wq保存退出. 2.用户切换 普通 ...

  6. nginx中location的顺序(优先级)及rewrite规则写法

    一.location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所 ...

  7. 15、生命周期-BeanPostProcessor-后置处理器

    15.生命周期-BeanPostProcessor-后置处理器 BeanPostProcessor 接口 package org.springframework.beans.factory.confi ...

  8. 轮播图的3个常见bug,即处理bug思路及其解决办法

    1,下载jquery.js文件,并且导入 2,在下面的img中写入可以用图片路径 <!-- 第一个bug: 刚打开页面时,按一下左键图片没切换,再按第二下时才切换图片. 第二个bug: Ctrl ...

  9. Educational Codeforces Round 74 (Rated for Div. 2)【A,B,C【贪心】,D【正难则反的思想】】

    A. Prime Subtractiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inpu ...

  10. Strategic game POJ - 1463 【最小点覆盖集】

    Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solu ...