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 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
如何使用Python实现斐波那契数列
Jul 02 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python如何通过pyqt5实现进度条
Jan 20 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
python实现人像动漫化的示例代码
May 17 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
想学画画?python满足你!
Dec 24 Python
Python读写Excel表格的方法
Mar 02 Python
python - asyncio异步编程
Apr 06 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实现下载功能的代码
2012/09/29 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php实现的mongodb操作类
2015/05/28 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
Python守护进程(daemon)代码实例
2015/03/06 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python @property的用法及含义全面解析
2018/02/01 Python
图解Python变量与赋值
2018/04/03 Python
django表单的Widgets使用详解
2019/07/22 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
公务员的自我鉴定
2013/10/26 职场文书
教师岗位职责
2013/11/17 职场文书
精彩自我鉴定
2014/01/16 职场文书
副总经理岗位职责
2014/03/16 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs