Python字符串处理实现单词反转


Posted in Python onJune 14, 2017

Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留:
如:‘ I love China! ‘
转化为:‘ China! love I ‘

两种解决方案:

方案1:从前往后对字符串进行遍历,如果第一个就是空格,直接跳过,直到第一个不是空格的字符,如果是单独的字母,同样跳过,否则的话,将该单词进行反转,再往后遍历,最后使用reserve方法,让整个字符串从后往前打印。

方案2:直接使用re(正则化)包进行反转

代码如下:

import re

def reserve(str_list, start, end):
  while start <= end:
    str_list[start], str_list[end] = str_list[end], str_list[start]
    end -= 1
    start += 1

str = ' I love china!  '
str_list = list(str)
print(str_list)
i = 0
print(len(str_list))

# 从前往后遍历list,如果碰到空格,就调用反转函数,不考虑单个字符情况
while i < len(str_list):
  if str_list[i] != ' ':
    start = i
    end = start + 1
    print(end)
    while (end < len(str_list)) and (str_list[end]!=' '):
      end += 1
    if end - start > 1:
      reserve(str_list, start, end-1)
      i = end
    else:
      i = end
  else:
    i += 1

print(str_list)
str_list.reverse()
print(''.join(str_list))

# 采用正则表达式操作
str_re = re.split(r'(\s+)',str)

str_re.reverse()
str_re = ''.join(str_re)
print(str_re)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简明 Python 基础学习教程
Feb 08 Python
Python运行的17个时新手常见错误小结
Aug 07 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
python远程邮件控制电脑升级版
May 23 Python
django ajax发送post请求的两种方法
Jan 05 Python
python如何获取apk的packagename和activity
Jan 10 Python
解决Tensorflow占用GPU显存问题
Feb 03 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
Django Path转换器自定义及正则代码实例
May 29 Python
python如何调用php文件中的函数详解
Dec 29 Python
python3实现UDP协议的服务器和客户端
Jun 14 #Python
老生常谈Python基础之字符编码
Jun 14 #Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 #Python
Python之re操作方法(详解)
Jun 14 #Python
Python之py2exe打包工具详解
Jun 14 #Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 #Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 #Python
You might like
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
一个cssQuery对象 javascript脚本实现代码
2009/07/21 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
js实现点击生成随机div
2020/01/16 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
python如何在终端里面显示一张图片
2016/08/17 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 公共方法汇总解析
2019/09/16 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
大学生简短的自我评价分享
2014/02/20 职场文书
学校安全责任书
2014/04/14 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
信访维稳工作汇报
2014/10/27 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python
DSP接收机前端设想
2022/04/05 无线电
宝塔更新Python及Flask项目的部署
2022/04/11 Python