python字符串连接的三种方法及其效率、适用场景详解

python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& 39; com& 39;方法2

python字符串连接的方法,一般有以下三种:

方法1:直接通过加号(+)操作符连接


1

website = ‘python‘ + ‘tab‘ + ‘.com‘

方法2:join方法


1

2

listStr = [‘python‘‘tab‘‘.com‘

website = ‘‘.join(listStr)

方法3:替换


1

website = ‘%s%s%s‘ % (‘python‘‘tab‘‘.com‘)

下面再来说一下三种方法的不同

方法1,使用简单直接,但是网上不少人说这种方法效率低

之所以说python 中使用 + 进行字符串连接的操作效率低下,是因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了

方法2,使用略复杂,但对多个字符进行连接时效率高,只会有一次内存的申请。而且如果是对list的字符进行连接的时候,这种方法必须是首选

方法3:字符串格式化,这种方法非常常用,本人也推荐使用该方法

下面用实验来说明字符串连接的效率问题。


1

2

3

比较对象:加号连接 VS join连接

python版本: python2.7

系统环境:CentOS

实验一:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

# -*- coding: utf-8 -*-

from time import time

def method1():

    = time()

    for in xrange(100000):

        = ‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘

    print time() - t

def method2():

    = time()

    for in xrange(100000):

        = ‘.join([‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘])

    print time() -t

method1()

method2()

结果:


1

2

0.641695976257

0.341440916061

实验二:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

# -*- coding: utf-8 -*-

from time import time

def method1():

    = time()

    for in xrange(100000):

        = ‘pythontab‘+‘pythontab‘+‘pythontab‘+‘pythontab‘

    print time() - t

def method2():

    = time()

    for in xrange(100000):

        = ‘.join([‘pythontab‘,‘pythontab‘,‘pythontab‘,‘pythontab‘])

    print time() -t

method1()

method2()

结果:


1

2

0.0265691280365

0.0522091388702

上面两个实验出现了完全不同的结果,分析这两个实验唯一不同的是:字符串连接个数。

结论:加号连接效率低是在连续进行多个字符串连接的时候出现的,如果连接的个数较少,加号连接效率反而比join连接效率高

时间: 2024-09-28 18:55:46

python字符串连接的三种方法及其效率、适用场景详解的相关文章

Python字符串拼接的6种方法

Python字符串拼接的6种方法: 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串: 1 print 'Python' + 'Tab' 结果: 1 PythonTab 2. 逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格: 1 print 'Python','Tab' 结果: 1 Python Tab 3. 直接连接 第

python字符串连接的N种方式

python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 str2 % 连接字符串:‘name:%s; sex: ’ % ('tom', 'male') 字符串列表连接:str.join(some_list) 第一种,想必只要是有编程经验的人,估计都知道,直接用 “+” 来连接两个字符串: 'Jim' + 'Green' = 'JimGreen' 第二种比较特

JavaScript学习笔记第一天——字符串连接的N种方法

Javascript 字符串的连接方法有多种,但效率却有很大区别. 1.逐个字符串相加 var arr = ['item 1', 'item 2', 'item 3', ...]; var list = ''; for (var i = 0, l = arr.length; i < l; i++) { list += '<li>' + arr[i] + '</li>'; } list = '<ul>' + list + '</ul>'; 这种最常见的,

清空StringBuilder的三种方法及效率

清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或empty的方法.那用什么方法呢?在网上搜了一下大概一下三种方法. 1.Remove 例: StringBuilder val = new StringBuilder(); val.Append("...."); val.Remove(0,val

python下载文件的三种方法

Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法requests. 下面来看看三种方法是如何来下载zip文件的:方法一: import urllib import urllib2 import requests print "downloading with urllib" url = 'http://***/test/demo.zip

Python字符串拼接的6种方法(转)

add by zhj: 对于多行字符串连接,第6种连接方法很方便,连接时不会添加额外的空格. 原文:http://www.cnblogs.com/bigtreei/p/7892113.html 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串: print 'Python' + 'Tab' 结果: PythonTab 回到顶部 2. 逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开

字符串连接的5种方法

1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串: >>> print("hello "+"world") hello world 2. 逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格: >>> print('hello','world') hello wo

python 调用shell命令三种方法

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里. python调用shell命令的方法有许多 1.1   os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态.这实际上是使用C标准库函数system()实现的.这个函数在执行comman

python字符串复制的几种方法

>>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >>> print(list1 == list2) True >>> id(list2) 50081352#几种字符串复制方法,id相同 >>> s0 ='Python猫' >>> s1 = s0 >>> s2 = str(s0) &