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开启多个子进程并行运行的方法
Apr 18 Python
python任务调度实例分析
May 19 Python
在Python中操作列表之list.extend()方法的使用
May 20 Python
Python编程实现正则删除命令功能
Aug 30 Python
python for循环输入一个矩阵的实例
Nov 14 Python
python numpy元素的区间查找方法
Nov 14 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
浅谈Python爬虫基本套路
Mar 25 Python
Form表单及django的form表单的补充
Jul 25 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
Jun 05 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
python 邮件检测工具mmpi的使用
Jan 04 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中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python 异步async库的使用说明
2020/05/04 Python
Python如何定义接口和抽象类
2020/07/28 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
2014年房产经纪人工作总结
2014/12/08 职场文书
道德模范事迹材料
2014/12/20 职场文书
节约用电倡议书
2015/04/28 职场文书
入党积极分子考察意见
2015/06/02 职场文书
党支部评议意见
2015/06/02 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书