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发送邮件接收邮件示例分享
Jan 21 Python
python创建线程示例
May 06 Python
Python version 2.7 required, which was not found in the registry
Aug 26 Python
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
python读取各种文件数据方法解析
Dec 29 Python
python获取点击的坐标画图形的方法
Jul 09 Python
python实现小世界网络生成
Nov 21 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Python二维码生成识别实例详解
2019/07/16 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
C有"按引用传递"吗
2016/09/06 面试题
某公司面试题
2012/03/05 面试题
教学实习自我评价
2014/01/28 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
企业法人授权委托书
2014/04/03 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书