百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python字符串拼接的方式和性能对比

off999 2025-06-13 16:07 27 浏览 0 评论


在编程过程中,常会用到字符串拼接。python里字符串拼接主要有四种方式,分别是,使用加号,join方法,百分号或format字符串格式化,f-string。


其中,加号运算符无疑是最常用和最简单的字符串拼接方式,在多个字符串之间直接用加号就能连接起来。还有一些特殊点的使用方法,比如结合条件判断,可动态拼接字符串。


假设有个数字 a ,用 "is so " + ("good" if a > 0 else "bad") 这样就可以根据 a 不同的值来动态拼接出不同的字符串。


a = 5

result = "is so " + ("good" if a > 0 else "bad")

print(result)


用加号运算符进行拼接时,要注意两头都必须是个字符串,常见的错误是把字符串和数字拼接,这样运行一下就会报错,正确做法是要先把数字转成字符串再拼接。


num = 10

# 错误拼接方式,会报错

# error_result = "数字是:" + num

# 正确拼接方式

correct_result = "数字是:" + str(num)

print(correct_result)


百分号和format比较少用,这里就不介绍了。f-string我们前面有做过一个专门介绍的视频,有兴趣的朋友可以看下我们前面的视频。


这里我们重点介绍一下join方法。


join方法用于将可迭代对象中的元素连接成一个字符串。基本语法是:连接字符串.join(可迭代对象)


比如我们有个字符串列表 s = ["1", "2", "3", "4"] ,要拼接成字符串,直接用引号,点,join(s)就行。 如果要用其他字符串来连接,就在引号里写上其他字符串,比如可以加个下划线,把列表每个字符串元素用下划线连接起来。

join的参数只要是个以字符串为元素的可迭代对象就行,比如列表,元组,集合等都可以。当然也可以是一个字符串,因为字符串本身就是个可迭代对象,每个字符就是这个可迭代对象的元素。比如我们把参数换成一个字符串,这样就变成了用下划线把每个字符连接起来了。

使用join时要注意,可迭代对象里的每个元素都必须是字符串。否则会抛出 TypeError 异常。我们把 s 列表的一个参数换成数字看下,这样就会报错。示例代码如下:


s = ["1", "2", 3, "4"] # 把第三个元素换成数字

# 执行会报错

# error_result = "".join(s)

join也可以拼接集合的元素。但是由于集合是无序的,所以每次拼接得到的字符串可能会不同。

和加号运算符一样,我们还可以结合条件表达式进行动态拼接。比如 "_" if a > 0 else "/" ,然后 .join(s) ,这样, a 的值不同,就可以用不同的字符串进行拼接。

a = 10

s = ["1", "2", "3", "4"]

connect_str = "_" if a > 0 else "/"

dynamic_result = connect_str.join(s)

print(dynamic_result)

join结合切片等还可以实现单个数字的排序。


比如 s 是个数字。可以用 int("".join(sorted(str(s)))) 这个式子,把这个 s 的每一位数字按顺序排序。


这里 str(s) 是先把数字转成字符串,然后用 sorted 把字符串的每个字符排序。但这时返回的是个列表,所以要用 join 把列表拼接成字符串,再用 int 转成数字。

s = 132

sorted_num = int("".join(sorted(str(s))))

print(sorted_num)


在连接多个字符串时,用 join 来拼接,会比用加号更加高效。因为每次执行加号拼接操作时,都会创建一个新的字符串对象,然后再进行下一个加号拼接,这样会产生多次内存分配和复制操作,性能开销较大。而 join() 方法会预先计算好连接后字符串所需的内存空间,然后一次性分配内存并将各个字符串复制到新的字符串中,避免了多次创建新字符串带来的性能开销。


所以加号拼接更适合简单的、少量字符串的连接操作,而 join() 方法则更适用于各种可迭代对象中的字符串连接,尤其是在处理大量字符串连接,或者需要对可迭代对象中的元素进行统一连接操作的场景中,优势明显。

我们可以来做个简单的性能对比。

import timeit

s = ["abc"] * 1000

# 定义一个函数a,循环用加号拼接

def a():

result = ""

for i in s:

result += i

return result

# 再定义一个函数b,用join拼接

def b():

return "".join(s)

# 分别执行一万次,然后输出运行用时

print(timeit.timeit(a, number=10000))

print(timeit.timeit(b, number=10000))

可以看到,用 join 的运行时间要短很多。


好了,今天的视频就到这里。熟练掌握这些字符串拼接方式,能帮助我们编写出更高效、易读的Python代码,希望这个视频对你有帮助。

相关推荐

在电脑上复制粘贴按什么键(电脑怎复制粘贴按那个键)

电脑键盘上的“复制和粘贴”,分别是Ctrl+c和Ctrl+v,其中复制的快捷键是Ctrl+c,粘贴的快捷键是Ctrl+v。鼠标右键,点击右键会出菜单,移动光标后点击左键确认。键盘复制的快捷键:Ctrl...

office是电脑自带的吗(电脑自带的office都是2016版)

基本上大品牌电脑,都会带正版的office软件。如果是自己组装的电脑,一般使用的盗版软件,不是正版的。现在office软件分为国产和进口两个版本,进口的是微软office,国产的是wpsoffice...

怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
  • 怎么样的电脑配置才算好(怎么样的电脑配置才算好的)
appstore应用商店下载(AppStore应用商店下载入口)

可能因为1.你的软件原来在其他国家下载的,你现在账户不支持那个软件的更新,只要更改到相应的地区就好了2.可能你网不好(?˙ー˙?)3.你的pad原来登录的账户和现在不一样,所以你现在...

联想售后人工客服24小时电话

联想服务中心朝阳区望京店距您12.2KM营业时间:周一至周日9:00-18:00疫情期间停业好评度:98%已服务人数61945联想服务中心昌平区天通苑店距您5.1KM营业时间:周一至周日9:...

鼠标dpi键有什么作用(鼠标的dpi键)

鼠标DPI(DotsPerInch)键的作用是调节鼠标的定位精度和速度。DPI是鼠标的定位精度单位,指的是鼠标在平面上每移动一英寸能准确定位的最大信息数。通常情况下,鼠标DPI越高,鼠标指针在屏幕...

无线网登录密码忘记了怎么办

1、先查看一下wifi链接的网关是多少,如果是默认的多为192.168.1.1或者192.168.0.1这个地址。2、然后打开ie浏览器,输入查看到的网关地址,比如192.168.1.1,会弹出登录对...

微软重装系统(微软重装系统工具)

    win10重装跳过账号登录的方法步骤如下:1、重装系统到“登录你的Microsoft账户”这一界面后,点击下方的“创建一个新账户”。2、接着进入...

迷你世界激活码生成器下载(迷你世界激活码生成器app下载)

序列号相当于导航的身份证,表示该导航对应的版本和机型。是厂家随机编号的,说不出什么意思。在Excel中,您可以使用以下方法快速生成序列号:方法一:填充法1.在第一个目标单元格中输入起始序号(No)值...

手机怎么设置wifi网络(手机如何设置wifi网络)
手机怎么设置wifi网络(手机如何设置wifi网络)

1、在手机上打开浏览器,在浏览器中输入192.168.1.1,并点击访问。2、在跳转的界面中,输入无线网络的管理名称和管理密码,并点击下方的确认。3、之后设置无线的名称和无线密码,设置完成后,点击下方的保存。4、之后即可完成设置,路由器重启...

2025-12-17 04:51 off999

win11分区教程(win11磁盘分区形式)

在安装win11时,可以选择自定义分区,进入磁盘管理界面,选择要安装win11的磁盘,点击新建分区,设置分区大小和分区盘符,注意不要覆盖原有数据分区。建议将系统分区和数据分区分开,以便备份和维护。安装...

win7双系统怎么切换(双系统win7切换win10)

要切换到其他操作系统,必须使用另一个启动设备或安装系统。以下是一些步骤:1.获取安装媒体(光盘或USB驱动器),包含您要安装的操作系统。2.在Windows7上打开电脑,将安装媒体插入计算机。3...

project2010激活码(project2010永久激活码)

首先我们在网上下载project2010,因为project2010是付费使用的,所以我们可以先使用试用版,试用版期限是30天。首先我们来创建一个项目,然后使用project2010来进行管理。我们可...

迈克菲无法卸载(迈克菲无法卸载怎么解决)

一,找到迈克菲的图标二,右键,点击更改设置——实时扫描三,点击关闭,即可。1,控制面板中-管理工具-服务-停止MCAFEEFRAMEWORKMANAGER服务2,开始中—运行—输入cmd—输入“C...

爱普生打印机驱动(爱普生打印机驱动怎么安装)

1.首先进入爱普生网站。找到驱动以及手册证书下载2.选择打印机的类型,勾选正确的打印机型号。3.根据自己的电脑操作系统选择对应的软件版本点击下载。4.下载了LQ-630KII的驱动,双击运行。5.运行...

取消回复欢迎 发表评论: