字符串操作
strip()函数介绍:
# -*- coding: cp936 -*-
#strip()去掉转义字符
>>>word = "\thello world\n"
>>>print "直接输出:",word
>>>print "strip()后输出:",word.strip() --strip去掉所有的转义字符
>>>print "lstrip()后输出:",word.lstrip() --lstrip去掉左边的转义字符(这里是\t, 没有去掉\n)
>>>print "rstrip()后输出:",word.rstrip() --rstrip去掉右边的转义字符(这里是\n,没有去掉\t)
---------------------------------------------------------------------------------------
字符串的合并(join函数介绍):
字符串的合并可以用“+”,但是得是类型相同,不能字符串+整数。
例如:
>>>str1 = "zhao"
>>>str2 = "chuan"
>>>str3 = 3
>>>print "str1 + str2 = ",str1 + str2
>>>str1 + str2 = zhaochuan
>>>print "str1 + str3 = ",str1 + str3
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
print "str1 + str3 ",str1 + str3
TypeError: cannot concatenate 'str' and 'int' objects --类型不同,不可以相加
python中“+”连接字符串略想繁琐,提供了另外一个函数join()连接字符串:
>>>strs = ["hello","world","hello","china"]
>>>result = "".join(strs)
>>>print result
>>>hellowordhellochina
也可以使用reduce()函数,这个函数就是对某个变量进行累计:
>>>import operator
>>> strs = ["hello","word","hello","china"]
>>> result = reduce(operator.add,strs,"")
>>> print result
hellowordhellochina
---------------------------------------------------------------------------------------
截取字符串:
因为字符串也是一个序列,被截取的部分称之为子串
可以使用切片:
>>>word = "world"
>>>str1 = "hello world"
>>>print word[0:3] --从第一个字符截取,截取到索引3之前的位置
wor
>>>print str1[::2]--开始和结束索引不写,可以截取全部。以2个间隔截取
hlowrd
>>>print str1[1::2]--从第一个位置截取,截取2个间隔
el ol
>>>print str1[::-1]--字符串倒序,默认是+1
dlrow olleh
>>>print str1[-1::-1] --从最后一个开始截取,一次-1个。跟上边一样
如果要同时截取多个子串,可以使用split()函数,返回结果用列表标识:
>>> sentence = "Bod said:1,2,3,4"
>>> print "使用空格取子串:",sentence.split()
使用空格取子串: ['Bod', 'said:1,2,3,4']
>>> print "使用逗号取子串:",sentence.split(',')
使用逗号取子串: ['Bod said:1', '2', '3', '4']
>>> print "使用两个逗号取子串:",sentence.split(',',2)
使用两个逗号取子串: ['Bod said:1', '2', '3,4']
字符串连接后,python将分配新的空间给连接后的字符串,源字符串保持不变
>>> str1 = "a"
>>> print id(str1)
31214328
>>> print id(str1 + "b")
49307560
---------------------------------------------------------------------------------------
字符串的比较:
# -*- coding: cp936 -*-
>>>str1 = 1
>>>str2 = "1"
>>>if str1 == str2:
>>> print "相同"
>>>else:
>>> print "不相同"
不相同
>>>if str(str1) == str2:
>>> print "相同"
>>>else:
>>> print "不相同"
相同
如果要比较字符串的开头和结尾可以使用更简单的方法,startswith()和endswitch()
startswith(字符串,[开始位置],[结束位置]) --如果不写,就判断开头有没有he
>>>word = "helloword"
>>>if word.startswitch("he") == "he"
>>> print "存在"
存在
>>>word.startswitch("hello",0,len(word)) --判断从0到结尾有没有hello字符串
>>>word.endswitch("rd",6) --判断从开始位置6,到最后有没有rd这个字符串
---------------------------------------------------------------------------------------
字符串的反转:
def fanzhuan(s):
l = list(s)
out = ""
for i in range(len(s),0,-1):
out += "".join(l[i-1])
return out
def fanzhuan2(s):
out = ""
for i in range(len(s),0,-1):
out+=s[i-1]
print out
使用reverse()和切片都可以很简单的反转字符串。reverse用于列表,转换一下就可以了
切片:word[::-1] 或[-1::-1]
---------------------------------------------------------------------------------------
查找字符串:
find()和rfind()函数。返回索引值。找不到返回-1
find[string[,start][,end]] --从左开始找
find[string[,start][,end]] --从右边开始查找
---------------------------------------------------------------------------------------
字符串的替换:
replace[old,new,[,替换的次数]] --如果不写,默认替换所有
>>> centence ="hello world,hello china"
>>> print centence.replace("hello","hi")
hi world,hi china
>>> print centence.replace("hello","hi",1)
hi world,hello china
>>> print centence.replace("abc","hi",1)
hello world,hello china
---------------------------------------------------------------------------------------
时间到字符串的转换:
>>>import time
>>> time.strftime("%Y-%m-%d-%X",time.localtime())
'2015-08-02-13:55:40'
posted on 2015-08-02 13:56 HHHH_nnnnn 阅读(270) 评论(0) 编辑 收藏 举报