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获取当前时间对应unix时间戳的方法
May 15 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
python中format()函数的简单使用教程
Mar 14 Python
Python unittest单元测试框架总结
Sep 08 Python
对python requests的content和text方法的区别详解
Oct 11 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
python psutil模块使用方法解析
Aug 01 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python实现自动签到脚本功能
Aug 20 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
python保存图片的四个常用方法
Feb 28 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
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python列表append和+的区别浅析
2015/02/02 Python
python根据日期返回星期几的方法
2015/07/06 Python
python实现自主查询实时天气
2018/06/22 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python设置环境变量的原因和方法
2019/06/24 Python
Python语言异常处理测试过程解析
2020/01/08 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
python的sys.path模块路径添加方式
2020/03/09 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
大学生最新职业生涯规划书范文
2014/01/12 职场文书
委托公证书范本
2014/04/03 职场文书
2014年加油站工作总结
2014/12/04 职场文书
电影建党伟业观后感
2015/06/01 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
《给予树》教学反思
2016/03/03 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL