Python中join()用法

一、概念

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
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武当豆豆

为国家GDP快速增长做贡献

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值