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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python函数中定义参数的四种方式
Nov 30 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
python神经网络学习 使用Keras进行简单分类
May 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
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
工程师岗位职责规定
2014/02/26 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
司法建议书范文
2014/05/13 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
公司离职证明样本
2014/09/13 职场文书
走群众路线学习笔记
2014/11/06 职场文书
先进学校事迹材料
2014/12/30 职场文书
防暑降温通知书
2015/04/27 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
用Python selenium实现淘宝抢单机器人
2021/06/18 Python
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
python图像处理 PIL Image操作实例
2022/04/09 Python