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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
从零学Python之引用和类属性的初步理解
May 15 Python
python列表操作实例
Jan 14 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
python Django模板的使用方法
Jan 14 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
python实现邮件自动发送
Aug 10 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
Python如何发送与接收大型数组
Aug 07 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
python识别验证码的思路及解决方案
Sep 13 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
解析js如何获取css样式
2016/12/11 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
vue兄弟组件传递数据的实例
2018/09/06 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
详解Python3序列赋值、序列解包
2019/05/14 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
关于python中导入文件到list的问题
2020/10/31 Python
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
幼儿园中秋节活动反思
2014/02/16 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
一年级班主任感言
2014/03/08 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
党员示范岗材料
2014/12/19 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
《确定位置》教学反思
2016/02/18 职场文书
辞职信怎么写?
2019/05/21 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python