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小技巧分享
Nov 22 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
python插入数据到列表的方法
Apr 30 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 Python
python多维数组切片方法
Apr 13 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
Python应用领域和就业形势分析总结
May 14 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
python 连续不等式语法糖实例
Apr 15 Python
Python实现列表索引批量删除的5种方法
Nov 16 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变量存储的详解
2013/06/13 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
vue实现通讯录功能
2018/07/14 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
python关闭windows进程的方法
2015/04/18 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
数据库的约束含义
2012/09/09 面试题
医院检讨书范文
2014/02/01 职场文书
硕士生工作推荐信
2014/03/07 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
趣味运动会口号
2015/12/24 职场文书
企业文化学习心得体会
2016/01/21 职场文书