字符串操作

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编辑  收藏  举报

导航