一、概念
Python中join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
二、语法
'sep'.join(seq)
sep:separator -- 可为','、'.'、'+'、'-'等。
seq:sequence -- 要连接的元素序列。
join()只接收一个参数,接收的参数必须是可迭代对象,可迭代对象中所有元素都必须是字符串类型。
三、应用
1、序列为字符串
s="HelloWord!"
#使用字符-将字符串中的字符进行拼接
export='-'.join(s)
print(export)#H-e-l-l-o-W-o-r-d-!
2、序列为列表
l=["Hello","Word","!"]
#使用字符+将列表中的元素进行拼接
export='+'.join(l)
print(export)#Hello+Word+!
3、序列为元组
t=("Hello","Word","!")
#使用字符*将元组中的元素进行拼接
export='*'.join(t)
print(export)#Hello*Word*!
4、序列为字典
d={"first":"Hello","second":"Word","third":"!","fourth":4}
#使用字符/将元组中的元素进行拼接
export='/'.join(d)
print(export)#first/second/third/fourth
#序列为字典时,只会拼接键,不会拼接值,有非字符串类型的值,不会报错;有非字符串类型的键会报错!
5、序列元素为数字
储存非字符串的元组、列表、字典等序列,进行拼接时会报错。
l=['1','2','3','4']
#使用字符-将列表中的字符串进行拼接
export='-'.join(l)
print(export)#1-2-3-4
l=[1,2,3,4]
#使用字符-将列表中的数字进行拼接
export='-'.join(l)
print(export)#TypeError: sequence item 0: expected str instance, int found
可结合for循环语句,将数字转为字符串再进行拼接。
l=[1,2,3,4]
#将数字转换为字符串,使用for循环,通过字符-将列表中的数字进行拼接
export='-'.join(str(i) for i in l)
print(export)#1-2-3-4
四、join()和+
join()和+都可以用来拼接字符串,但是join()的拼接效率比+高很多。
join()拼接字符时,会提前算好需要多大的内容空间,后面无论拼接多少字符,都只会开辟一次内存空间。
+拼接字符时,会先开辟一次内存空间,之后每拼接一次字符,都会再开辟一次内存空间,效率较低。
import time
list=[str(i) for i in range(10000000)]
#计算使用join()方法,将0-9999999的数字形式字符拼接起来
start_time=time.time()
export='+'.join(list)
end_time=time.time()
print(end_time-start_time)#0.12259292602539062
#计算使用+方法,将0-9999999的数字形式字符拼接起来
start_time=time.time()
export=''
for i in list:
export+=i
end_time=time.time()
print(end_time-start_time)#161.277822971344
'''
range为100000时,耗时分别为:
0.001992940902709961
0.01096343994140625
range为1000000时,耗时分别为:
0.010967254638671875
1.1168837547302246
range为10000000时,耗时分别为:
0.12259292602539062
161.277822971344
'''