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 相关文章推荐
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
TensorFlow实现模型评估
Sep 07 Python
python学生管理系统
Jan 30 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python Pandas 箱线图的实现
Jul 23 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python如何进行矩阵运算
Jun 05 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php中动态调用函数的方法
2015/03/16 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
微信小程序url与token设置详解
2017/09/26 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
图文详解WinPE下安装Python
2016/05/17 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python中取整的几种方法小结
2017/01/06 Python
Python实现在线音乐播放器
2017/03/03 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
入党自我鉴定
2014/03/25 职场文书
蓝颜请假条
2014/04/11 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书