成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 中,字符串"連接"效率最高的方式是?一定出乎你的意料

開(kāi)發(fā) 開(kāi)發(fā)工具
網(wǎng)上很多文章人云亦云,字符串連接應(yīng)該使用「join」方法而不要用「+」操作。如果連接的字符串很少,只有幾個(gè)或者十幾個(gè),完全可以通過(guò)「+」來(lái)連接,畢竟這種方式更直白,而超過(guò)一定個(gè)數(shù)之后,則應(yīng)該采用「join」方法,只有在操作大數(shù)據(jù)的時(shí)候,兩者的對(duì)比才明顯。

網(wǎng)上很多文章人云亦云,字符串連接應(yīng)該使用「join」方法而不要用「+」操作。說(shuō)前者效率更高,它以更少的代價(jià)創(chuàng)建新字符串,如果用「+」連接多個(gè)字符串,每連接一次,就要為字符串分配一次內(nèi)存,效率顯得有點(diǎn)低,這樣的解釋聽(tīng)起來(lái)很有道理,但 Cpython 解釋器是不是真的按照我們說(shuō)的這樣呢?

今天做了一個(gè)試驗(yàn),結(jié)果可能會(huì)出乎你的意料。

  1. def join(n): 
  2.     s = "".join((str(i) for i in range(n))) 
  3.  
  4. def format(n): 
  5.     ("{}" * n).format(*(i for i in range(n))) 
  6.  
  7. def plus(n): 
  8.     s = "" 
  9.     for i in range(n): 
  10.         s += str(i) 

上面 3 個(gè)函數(shù)分別表示用「join」和「format」還有「+」操作來(lái)連接字符串,從 0 到 n,總共 n 個(gè)數(shù)字連接起來(lái)構(gòu)成一個(gè)新的字符串,形如:1234567891011……n。

下面是測(cè)試腳本:

Python 中,字符串\"連接\"效率***的方式是?一定出乎你的意料

每組取了15個(gè)樣本數(shù)據(jù),分別用 1,2,4,8,… 8192 個(gè)數(shù)字相連接,得到的統(tǒng)計(jì)數(shù)據(jù)可以看出,在數(shù)據(jù)量非常少的時(shí)候,三者效率幾乎沒(méi)什么差異,當(dāng)少于20個(gè)字符串連接時(shí),用「+」效率甚至更高,不過(guò),隨著字符串的個(gè)數(shù)增多,「join」方法發(fā)揮出來(lái)效果了,而用「+」越來(lái)越慢。這點(diǎn)無(wú)論是 python2 還是 python3 基本上是一樣的。

python2.7.10

python2.7.10

python3.6.0

python3.6.0

所以結(jié)論是:如果連接的字符串很少,只有幾個(gè)或者十幾個(gè),完全可以通過(guò)「+」來(lái)連接,畢竟這種方式更直白,而超過(guò)一定個(gè)數(shù)之后,則應(yīng)該采用「join」方法,只有在操作大數(shù)據(jù)的時(shí)候,兩者的對(duì)比才明顯。

通過(guò)現(xiàn)象看本質(zhì)才能做到知其然并知其所以然。Cpython 編譯器內(nèi)部其實(shí)針對(duì)字符串做了非常多的優(yōu)化工作。

***,做任何事我們都不能僅憑三言兩語(yǔ)就聽(tīng)信于人,而應(yīng)該帶著質(zhì)疑的精神去探索這個(gè)世界。

【本文是51CTO專欄作者“劉志軍”的原創(chuàng)文章,作者微信公眾號(hào):Python之禪(VTtalk)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2020-07-29 17:15:19

Java人臉識(shí)別人工智能

2021-02-26 09:04:22

數(shù)組ArrayListHashMap

2015-10-21 11:09:08

Xcode7調(diào)試神技

2019-10-29 20:13:43

Java技術(shù)程序員

2015-08-06 13:30:56

商鋪線上

2021-01-14 10:38:41

Java枚舉工具

2010-05-25 15:58:45

MySQL連接字符串

2022-06-27 07:32:00

JavaArrayList語(yǔ)法糖

2022-07-20 07:29:52

Java

2010-10-12 11:13:51

2011-07-11 15:36:44

JavaScript

2011-05-31 13:41:00

C語(yǔ)言

2021-01-29 12:28:13

編程語(yǔ)言開(kāi)發(fā)代碼

2021-01-28 23:40:58

編程語(yǔ)言PythonPerl

2020-07-29 07:37:20

Git 修復(fù)項(xiàng)目

2010-03-16 17:41:14

Python字符串

2010-06-17 16:13:05

SQL Server

2010-03-16 17:14:19

Python字符串

2020-08-30 14:31:40

Python編程語(yǔ)言開(kāi)發(fā)

2019-01-21 08:20:17

通信4G5G
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 波多野结衣一区二区 | 欧美男人天堂 | 男人的天堂中文字幕 | 伊人春色成人网 | 在线免费观看毛片 | 天天爽夜夜骑 | 成人二区 | 二区久久 | 欧美三级电影在线播放 | 欧美高清hd | 国产成人av免费看 | 日韩三级一区 | 亚洲综合一区二区三区 | 欧美一区两区 | 色综合久久久 | 瑟瑟免费视频 | 国产99小视频 | 欧美在线一区二区三区四区 | 久久免费精彩视频 | 浮生影院免费观看中文版 | 国产97在线 | 日韩 | 久操av在线 | 天天插天天操 | 国产日产精品一区二区三区四区 | 一区二区三区四区在线 | 日韩免费一区二区 | av网站免费观看 | 国产一区二区三区免费 | 欧美精品一区二区三区蜜桃视频 | 久久久久成人精品亚洲国产 | 三级av在线| 毛片a级| 久久精品久久久 | 三级免费av | 精品国产欧美日韩不卡在线观看 | 欧美激情亚洲 | 亚洲成人福利视频 | 中文字幕1区| 国产日韩亚洲欧美 | 国产精品久久九九 | 欧美日韩亚洲一区 |