转载至:
http://hi.baidu.com/fishhatta/blog/item/458ac900d4a64f054bfb51f4.html
#Python中的字符串处理——2009-12-5
1.字符串的对齐方式:
①:center(int[,str])
>>> string = 'Fishhat'
>>> string.center(55)
' Fishhat '
>>> string.center(55,'*')
'************************Fishhat************************'
②:ljust(int[,str])
>>> string.ljust(55)
'Fishhat '
>>> string.ljust(55,'*')
'Fishhat************************************************'
③:rjust(int[,str])
>>> string.ljust(55)
' Fishhat'
>>> string.ljust(55,'*')
'************************************************Fishhat'
④:%(int)s
>>> print '% 55s' % string
Fishhat
2.字符串中的转义字符:
\\ 斜杠
\' 单引号
\" 双引号
\a 系统喇叭
\b 退格符
\n 换行符
\t 横向制表符
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符#还搞不懂...
\x 十六进制数代表的字符#还搞不懂...
\000 终止符,忽略\000后的全部字符
3.字符串中的转义符过滤函数:
①:strip()--过滤字符串中所有的转义符
②:lstrip()--过滤字符串中第一个转义符
③:rstrip()--过滤字符串中最后的转义符
后记:在使用的时候返回的结果不是预想中的正确结果.还待查询相关具体资料
4.字符串的连接
①:Python中可以使用'+'、'+='、连接若干个字符串,如果是以下情况,Python则自动连接:
>>> str = 'fish' 'hat' #若干个字符串之间如果只有空格,Python会自动连接
>>> print str
fishhat
>>> str += ' learning Python!' #使用运算符追加字符串
>>> print str
fishhat learning Python
②:使用str2.join(str)函数进行连接,其中str为需要连接的字符串序列或者一个字符串,str2为连接中填补的字符:
>>> string = ('apple','banana','china')
>>> print '-'.join(string) #向string这个元组中的多个字符串元素之间加上'-'然后输出
apple-banana-china
>>> print ''.join(string) #加入的字符也可以是空的
applebananachina
>>> print '-'.join('fishhat') #直接使用
f-i-s-h-h-a-t #自动在每个子字符中加入'-'
5.用split(str[,int])函数截取字符串
>>> string = 'f-i-s-h-h-a-t'
>>> string.split('-') #按'-'作为截取子字符串的符号,也就是说遇到一个'-'则截取一个子字符
['f','i','s','h','h','a','t'] #最后返回一个截取得到的子字符列表
>>> string.split('-',2) #在按'-'截取子字符的时候,当截取到第2个'-'的时候就停止截取,后面的字符全部按一个子字符返回(也就是说不管有没有'-'Python都不会理 了,它认为你只指定了2个'-'有效)
['f','i','s-h-h-a-t'] #实际上返回了三个子字符,因为在Python找到第一个'-'之前已经有一个'f'就把'f'做子字符
后记:这里很容易混淆,后面的整数参数(不提供系统默认截取所有的)其实就相当于你要在字符串中画多少条 界,相当于切一条蛋糕,你切两刀是不是得三块?至于每块蛋糕的长短,就取决于你在蛋糕上做好的标记,也就相当于刚才的'-'
6.startswith()函数和endswith()函数
①:startswith(substring[,start[,end]])--用于判断字符串是否以substring字符开始的,start和 end需要对比的字符区间,默认是整个字符串,成功返回True失败返回False
>>> str = 'fishhat'
>>> str.startswith('fi')
True
>>> str.startswith('sh',2,4)
True
>>> str.startswith('sh',)
②:endswith(substring[,start[,end]])--用于判断字符串是否以substring字符结束的,start和end是 需要对比的字符区间,默认是整个字符串,成功返回True失败返回False
>>> str.endswith('hat')
True
>>> str.endswith('ha',4,6)
True
#Python中的字符串处理(2)——2009-12-8
前记:前两天的笔记没有坚持写.现在继续.COME ON!今后争取每天都要写一篇笔记(就算没有东西写了也要扯出来)
1.实现字符串的反转,由于Python目前没有专门用于字符串反转的函数所以自定义一个,实现方法是通过从字符串的尾部开始取得子字符,然后逐个 连接起来后返回一个完整的反转字符串:
>>> def reverse(str):
>>> ... rstr = '' #定义一个用于连接字符串后返回的变量
>>> ... lstr = list(str) #将字符串分解成一个列表,即一个子字符为列表的一个元素
>>> ... for i in range(len(str),0,-1): #反向遍历索引,起始值为字符串的长度(就是以尾部到首部的顺序生成索引)
>>> ... rstr += ''.join(lstr[i-1]) #注意这里的索引得减去1,否则原字符串的第一个字符就不能返回(因为是0)
>>> ... return rstr #返回经过反向遍历字符串重新连接起来的反向字符串
>>> ...
>>> string = 'Fishhat'
>>> list(string) #这里先补上刚才接触到list()函数的用法与功能
>>> ['F','i','s','h','h','a','t'] #返回一个子字符集合的列表
>>> print reverse(string) #试试刚才自定义的字符串反转函数怎么样
tahhsiF #好样的,我们成功的把字符反过来了
后记:不知道是不是Python'蓄意'跟我搞了个乌龙(汗死了~~囧!!!):
>>> def reverse(str): #这个函数比上面那个精简了一些
>>> ... lstr = list(str) #解包--把字符串分解成子字符组成的列表
>>> ... lstr.reverse() #使用列表的reverse()方法对列表内的元素倒序排列
>>> ... rstr = ''.join(lstr) #打包--把列表内的子字符重新连接起来
>>> ... return rstr #返回连接后的结果
>>> string = 'ABCDE'
>>> print reverse(string)
EDCBA
让我更囧的东西还在下面....Python这小子竟然再次耍我:
>>> def reverse(str): #比上面的都精简.看到这里我就无语了~~
>>> ... return str[::-1] #直接返回通过索引倒序排序的结果
>>> ...
>>> string = 'ABCDE'
>>> print reverse(string)
EDCBA
2.字符串的查找与替换--可以用两个函数实现:find()、rfind(),这两个函数的不同之处只是查找的顺序不同
①find(substring[,start[,end]])--在字符串中查找子字符substring,后面的两个可选参数是进行切片查找
如果在字符串中找到substring则返回索引(如果字符串中有多个结果则返回第一次出现的索引),没找到返回-1
>>> string = 'I am Fishhat'
>>> print string.find('F') #记住.在查找的时候是区分大小写的
5
>>> print string.find('f') #试试看小写
-1 #找不到,所以是区分大小写的
>>> print string.find('h',2,5)
-1 #索引2至5之间没找到'h'
>>> print string.find('h',5,-1)# 索引5到字符串的最后一个索引
8 #找到了,在第8个索引
②rfind(substring[,start[,end]])--跟上面的没什么两样,只是在查找子字符串的时候是从字符串的尾部开始找的,下 面例子很好:
>>> string = 'I am Fishhat'
>>> print string.find('h') #先看看find()方法的结果
8 #找到了,在第八个索引
>>> print string.rfind('h') #然后试试rfind()方法看看跟上面有什么不一样的
9 #注意到了没?'I am Fishhat'中是不是有两个'h'呢?
#因为find()从左至右(顺序)开始查找的,找到的第一个'h'是在第8个索引,索引find()就返回咯
#而rfind()不一样,它是从右至左(倒序)进行查找的,找到的第一个'h'是在第9个索引.那就返回倒序查找先发现的咯,当然是9了
1.替换字符串--replace(old,new[,max]):替换字符串中找到的old为new,如果字符串中找到了多个old字串,则可使 用max指定替换多少个old(默认是替换所有),再有的就是.如果在字符串没有找到old字串.则返回原字符串
>>> str = 'AAAAABBBBBDDDDD'
>>> str.replace('D','C') #把字符串中所有的D替换为C
'AAAAABBBBBCCCCC'
>>> str.replace('A','a',3) #替换字符串中的3个A为a
'aaaAABBBBCCCCC' #replace()函数的操作不会影响原字符串.只是拷贝原字符串然后进行操作而已
2.字符串与时间格式的转换
首先看看格式化日期的时候常用到的标记
%a 英文星期的简写
%A 英文星期的完整拼写
%b 英文月份的简写
%B 英文月份的完整拼写
%c 本地当前的日期与时间
%d 日期数,1-31之间
%H 小时数,00-23之间
%I 小时数,01-12之间
%m 月份,01-12之间
%M 分钟数,01-59之间
%j 本年从第1天开始计数到当天的天数
%w 星期数,0-6之间(0是周日)
%W 当天属于本年的第几周,周一作为一周的第一天进行计算
%x 本地的当天日期
%X 本地的当前时间
%y 年份,0-99之间
%Y 年份的完整拼写
①时间转为字符串--strftime(format[,tuple]),其中format为转换格式类型tuple为一个时间元组
>>> import time #由于获取时间和使用转换函数需用到time模块.所以必须导入
>>> str = time.strftime('%Y-%m-%d %X',time.localtime())#time,localtime()返回以本地时间的所有参数为元素的元组
>>> print str
2009-12-09 21:36:35
②字符串转为时间--需要用到time模块strptime()函数和datetime模块datetime()函数
strptime(string,format)--把字符串string以format的格式返回一个时间的元组(元组内有齐全的时间元素,但是如果字 符串中只有几个有用的时间信息,其他的元素默认或取本地时间的一些信息)
>>> str = '2009/12/09'
>>> str = time.strptime(str,'%Y/%m/%d') #注意后面的获取字符串中的时间的格式.对应原字符串中年月日之间的间隔符号
>>> print str
time.struct_time(tm_year=2009, tm_mon=12, tm_mday=9, tm_hour=0, tm_min=0, tm_sec
=0, tm_wday=2, tm_yday=343, tm_isdst=-1) #可以注意到元组中前三个元素都是刚才字符串中得到的值,后面的信息都没没获取到
datetime(year,month,day[,hour[,minute[,second[,microsecend[,tzinfo]]]]]) 函数返回一个datetime类型的变量,这是一种特殊的变量,也就是说,时间型的
>>> str = datetime.datetime(2009,12,9) #定义一个datetime变量,注意后面参数中的月或日,只能单写也就是说,9月或9日不能写成09月或09日,必须单写
>>> print str
2009-12-09 00:00:00 #但显示却会显示完整的,比如其中的9日显示为了09日,还有,默认时分秒为0
>>> type(str)
<type 'datetime.datetime'> #这里可以看到刚才定义的str为这种类型的变量
最后再把上面这两个函数结合起来完整的完成字符串到时间的转换:
>>> import time,datetime #首先导入两个使用到的模块
>>> string = '2009-12-09'
>>> string = time.strptime(string,'%Y-%m-%d')#首先把字符串使用strptime()返回一个时间元素构成的元组
>>> y, m, d = string[0:3] #把得到的时间元组前三个元素赋值给三个变量(也就是年月日)
>>> string = datetime.datetime(y, m, d) #最后使用datetime把刚才得到的时间变量转为正式的时间格式变量
>>> print string
2009-12-09 00:00:00 #至此,可以说完成了字符串到时间的转换(注意是变量类型转换的过程)
相关推荐
python 字符串处理
Python 字符串处理实例 Python 中的字符串处理是 Python 编程语言中非常重要的一部分。字符串是 Python 中最基本的数据类型之一,它可以表示文本、数字、符号等。 Python 提供了多种字符串处理方法,本文将对 ...
Python 字符串处理实例总结 Python 中的字符串处理是指对字符串进行各种操作和处理的过程。字符串是 Python 中最基本的数据类型之一,字符串可以是用单引号或双引号括起来的任何文本。在 Python 中,字符串可以使用...
Python字符串处理,字符串的查询字符串的统计字符串的分割一刀两段式切割字符串的对齐方式。。。。。
C语言字符串转换为Python字符串的方法 C语言字符串转换为Python字符串是指将C语言中的字符串数据转换为Python中的字符串对象,以便在Python环境中使用。下面详细介绍了C语言字符串转换为Python字符串的方法。 使用...
### Python字符串处理知识点详解 #### 一、去除空格及特殊符号 在处理字符串时,经常需要去除字符串两端的空格或特定字符。Python提供了多种方法来实现这一功能。 - **`strip()`**: 去除字符串两端的所有空白字符...
Python 是一种流行的编程语言,具有强大的字符串处理能力。字符串模糊匹配是字符串处理中的一种重要技术,用于解决字符串之间的相似度计算问题。在本文中,我们将介绍 Python 实现字符串模糊匹配的方法。 编辑距离...
Python字符串处理是编程中常见的任务,它涉及到对文本数据的操作,包括查找、连接、替换和分割等。在Python中,有多种内置函数可以帮助我们高效地完成这些任务。下面我们将详细探讨`find`、`join`、`replace`以及`...
在Python编程语言中,字符串处理是一项常见的任务,特别是在数据清洗、文本分析或用户输入处理时。本主题将详细探讨如何去除字符串中的特殊符号、多余空格以及首尾空格,并在中文与英文之间添加空格。 1. 去掉特殊...
在这个过程中,了解Python字符串处理技术的深入应用对于实现功能至关重要。掌握这些技能不仅对于进行字符串的日常处理有帮助,而且在数据处理、网络编程、文件操作等多个领域也都是不可或缺的。 总结起来,Python...
Python字符串是编程中常用的数据类型,用于存储和处理文本信息。在Python中,字符串是由一个或多个字符组成的序列,它们可以被单引号(' ')或双引号(" ")包围。以下是一些关于Python字符串的重要知识点: 1. **字符...
Python内置的字符串处理函Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。
在Python编程中,字符串处理是一...以上就是关于Python字符串处理的一些实例详解,包括了如何处理含有多种分隔符的字符串以及如何调整字符串的文本格式。这些技巧在日常编程中非常实用,有助于提高代码的效率和可读性。
在实际开发中,字符串处理是非常常见的任务,如处理用户输入、生成报告、解析文本数据等。f-string和内置方法的灵活运用能极大地提高代码的可读性和效率。例如,在处理用户输入的姓名并输出欢迎消息时: ```python ...
Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I love China! ‘ 转化为:‘ China! love I ‘ 两种解决方案: 方案1:从前往后对字符串进行...
在给定的文件内容中,我们可以看到有关Python字符串操作的知识点。这些操作涉及到C语言风格的字符串函数模拟,但它们实际上并不是Python原生的字符串操作方法。Python语言本身就拥有强大的字符串处理能力,不过,...
这些方法是Python字符串处理的基础,理解并熟练运用它们可以极大地提高编写程序的效率。在实际编程中,可以根据需求灵活运用这些方法,例如在数据分析、文本处理、日志分析等场景下,它们都发挥着重要的作用。通过...
在Python编程中,字符串处理是一项基础且重要的任务。在某些场景下,我们可能需要批量替换或修改字符串中的多个字符。...通过阅读和运行这段代码,你可以加深对Python字符串处理的理解,掌握批量替换字符串字符的方法。