python中字符串处理函数有"str".join(seq),拼接字符串,和os.path.join()返回拼接后的字符串。
一、"str".join(sequenue),join函数
python下拼接字符串可通过join函数实现,使用方法:
string.join(sequence)
其中:string ==>> 字符串拼接符
sequence ==>> 要拼接的对象,可为字符串、元祖、列表、字典、集合
实例如下:
>>> a=['hello', 'world'] //列表
>>> print(":".join(a))
hello:world
>>> print(" ".join(a))
hello world
>>> b='hello world' //字符串
>>> print(":".join(b))
h:e:l:l:o: :w:o:r:l:d
>>> print(" ".join(b))
h e l l o w o r l d
>>> c=('hello', 'world') //元祖
>>> print(":".join(c))
hello:world
>>> print(" ".join(c))
hello world
>>> d={'a':1, 'b':2, 'c':3} //字典,注意拼接的是key值
>>> print(":".join(d))
a:b:c
>>> print(" ".join(d))
a b c
>>> e={'1', '2', '3'} //集合,注意打印的是无序的
>>> print(":".join(e))
2:1:3
>>> print(" ".join(e))
2 1 3
>>> print("".join(e)) //拼接符可以为空
213
执行效率和“+”比较,join相对效率较高,原因如下(引用):
-==-=-=-=-=-=--=--==-=-=-==-=-==-=-=-=-=-=-=-=-=-=-=-=-=
Python中字符串是不可变对象,修改字符串就得将原字符串中的值复制,开辟一块新的内存,加上修改的内容后写入到新内存中,以达到“修改”字符串的效果。在使用“+”拼接字符串时,正是使用了重复性的复制、申请新内存、写入值到新内存的工作一遍遍的将字符串的值修改。而使用join()方法拼接字符串时,会先计算总共需要申请多少内存,然后一次性申请所需内存并将字符串复制过去。这样便省去了重复性的内存申请和写入,节省了时间消耗。
-----------------------------------------------------------------------------------------------------
二、os.path.join()函数,将多个字符串拼接,返回连接的字符串
实例如下:
>>> import os
>>> os.path.join('hello', 'world')
'hello/world' //用/连接两个字符
>>>
>>> os.path.join('hello', '/world') //存在/开头字符串,则/之前的丢弃
'/world'
>>> os.path.join('hello/', '/world') //存在/开头字符串,则/之前的丢弃
'/world'
>>> os.path.join('hello/', 'world')
'hello/world'
>>> os.path.join('hello/', 'world', 'haha') //存在/,则不会再添加/
'hello/world/haha'
>>> os.path.join('hello/', 'world', '/haha') //存在/开头字符串,则/之前的丢弃
'/haha'
>>> os.path.join('hello/', 'world', './haha') //正常拼接字符串
'hello/world/./haha'
注意:
1、拼接时,存在"/"开头的字符串,则之前的字符串丢弃;
2、若字符串存在"/",则拼接时不会再添加"/"。