kevinweijc 2013-09-29
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