Python 字符串操作(截取/替换/查找/分割)

python字符串连接

先介绍下效率比较低的,有些新手朋友就会犯这个错误:

a = ['a','b','c','d']
content = ''
for i in a:
   content = content + i   
print content

说下为什么效率会低呢?

原因:在循环连接字符串的时候,他每次连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,再一次循环,又要开辟新的空间,把字符串连接起来放入新的空间,如此反复,内存操作比较频繁,每次都要计算内存空间,然后开辟内存空间,再释放内存空间,效率非常低,你也许操作比较少的数据的时候看不出来,感觉影响不大,但是你碰到操作数据量比较多的时候,这个方法就要退休了。

还是看看下面2个比较先进的方法把。

方法1:用字符串的join方法:

a = ['a','b','c','d']
content = ''
content = ''.join(a)
print content

方法2:用字符串的替换占位符替换

a = ['a','b','c','d']
content = ''
content = '%s%s%s%s' % tuple(a)
print content

原文

http://www.17jo.com/program/python/base/StringControl.html

Python截取字符串使用变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

#例1:字符串截取

str = '12345678'
print str[0:1]
>> 1			# 输出str位置0开始到位置1以前的字符
print str[1:6]		
>> 23456			# 输出str位置1开始到位置6以前的字符
num = 18
str = '0000' + str(num)	# 合并字符串
print str[-5:]		# 输出字符串右5位
>> 00018

Python替换字符串使用变量.replace("被替换的内容","替换后的内容"[,次数]),替换次数可以为空,即表示替换所有。要注意的是使用replace替换字符串后仅为临时变量,需重新赋值才能保存。

#例2:字符串替换

str = 'akakak'
str = str.replace('k',' 8')	# 将字符串里的k全部替换为8
print str
>> 'a8a8a8'		# 输出结果
Python 查找字符串使用 变量.find("要查找的内容"[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始算,如果每找到则返回-1。

#例3:字符串查找

str = 'a,hello'
print str.find('hello')	# 在字符串str里查找字符串hello
>> 2			# 输出结果

Python分割字符串使用变量.split("分割标示符号"[分割次数]),分割次数表示分割最大次数,为空则分割所有。

例4:字符分割

str = 'a,b,c,d'
strlist = str.split(',')	# 用逗号分割str字符串,并保存到列表
for value in strlist:	# 循环输出列表值
    print value
>> a			# 输出结果
>> b
>> c
>> d

相关推荐