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 相关文章推荐
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
Python切片操作实例分析
Mar 16 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
Python 从attribute到property详解
Mar 05 Python
Python数据正态性检验实现过程
Apr 18 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
Python安装并操作redis实现流程详解
Oct 13 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 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python中optparser库用法实例详解
2018/01/26 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
python中pivot()函数基础知识点
2021/01/03 Python
中职生自我鉴定范文
2013/10/03 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
公司员工活动策划方案
2014/08/20 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
承兑汇票延期证明
2015/06/23 职场文书
新生儿未入户证明
2015/06/23 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Python爬虫基础初探selenium
2021/05/31 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL