国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

面試python崗位,提問:連接字符串用join還是+,怎么回答?

molyzzx / 768人閱讀

摘要:上面的程序有如下的輸出可以看到,的性能明顯好于。而在連接字符串的時候,會先計算需要多大的內存存放結果,然后一次性申請所需內存并將字符串復制過去,這是為什么的性能優于的原因。所以在連接字符串數組的時候,我們應考慮優先使用。


本篇要講的是,連接字符串的時候可以用join也可以用+,但這兩者有沒有區別呢?
關注公眾號:「Python專欄」,后臺回復「騰訊架構資源1」,獲取由騰訊架構師整理的大數據學習資源包全套!!!

我們先來看一下用join和+連接字符串的例子

str1 = " ".join(["hello", "world"])
str2 = "hello " + "world"

print(str1)  # 輸出 “hello world"
print(str2)  # 輸出 “hello world"

兩者的結果是一樣,那么考慮這樣一個問題,這兩者在性能上有區別嗎?
我們來做個實驗,比較下join和+的性能

import timeit

def test1(strlist):
    return "".join(strlist)

def test2(strlist):
    result = ""
    for v in strlist:
        result = result+v
    return result

if __name__ == "__main__":
    strlist = ["a very very very very very very very long string" for n in range(100000)]
    timer1 = timeit.Timer("test1(strlist)", "from __main__ import strlist, test1")
    timer2 = timeit.Timer("test2(strlist)", "from __main__ import strlist, test2")
    time1 = timer1.timeit(number=100)
    time2 = timer2.timeit(number=100)
    print("join: %f, plus: %f" % (time1, time2))

那么這里我們不對timeit模塊做過多解釋,你們可以理解為是一個對代碼效率進行檢測運行耗時的模塊。下次我們多帶帶起一篇來說這個timeit。

上面的程序有如下的輸出

join: 0.116944, plus: 0.394379

可以看到,join的性能明顯好于+。這是為什么呢?

原因是這樣的,字符串是不可變對象,當用操作符+連接字符串的時候,每執行一次+都會申請一塊新的內存,然后復制上一個+操作的結果和本次操作的右操作符到這塊內存空間,因此用+連接字符串的時候會涉及好幾次內存申請和復制。

而join在連接字符串的時候,會先計算需要多大的內存存放結果,然后一次性申請所需內存并將字符串復制過去,這是為什么join的性能優于+的原因。

所以在連接字符串數組的時候,我們應考慮優先使用join。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43345.html

相關文章

  • 從零轉行數據分析的親身經歷

    摘要:我的轉行經歷博主從開公眾號起前個月開始接觸語言,然后接觸到了數據方面的技術,包括爬蟲,數據分析,數據挖掘,機器學習等,一直到現在仍然在堅持自學,我相信只要堅持結果總不會太差。對于數據分析而言,機器學習和爬蟲等并不是必須,但是加分項。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 showImg(https://segmentfault.com/i...

    Rocture 評論0 收藏0
  • 細讀應聘阿里全流程,我是如何拿到阿里offer!

    摘要:應聘阿里是一個相對較長的流程,涉及崗位選擇簡歷投遞簡歷評估技術面試面試背景調查入職材料準備等環節。關于學歷和專業的要求目前,阿里的正式崗位對學歷的要求基本都是本科及以上,這個要求并不高,出發點是避免因學歷限制而錯過優秀的人才。 應聘阿里是一個相對較長的流程,涉及崗位選擇、簡歷投遞、簡歷評估、技術面試、HR面試、背景調查、入職材料準備等環節。其中,關于技術面試,網上有很多優秀的攻略,但普...

    AlanKeene 評論0 收藏0
  • 細讀應聘阿里全流程,我是如何拿到阿里offer!

    摘要:應聘阿里是一個相對較長的流程,涉及崗位選擇簡歷投遞簡歷評估技術面試面試背景調查入職材料準備等環節。關于學歷和專業的要求目前,阿里的正式崗位對學歷的要求基本都是本科及以上,這個要求并不高,出發點是避免因學歷限制而錯過優秀的人才。 應聘阿里是一個相對較長的流程,涉及崗位選擇、簡歷投遞、簡歷評估、技術面試、HR面試、背景調查、入職材料準備等環節。其中,關于技術面試,網上有很多優秀的攻略,但普...

    jay_tian 評論0 收藏0
  • 技術面試老是有勁使不出,該怎么辦?

    摘要:老王工作五六年了,今年剛從一家不小的公司出來,公司效益不好,年底裁員了,不幸老王在年前的最后一次裁員名單中中獎了。小黃心想,昨天復習了面試寶典里的數據庫索引,老師說這個是要點,面試官怎么不按常理出牌呢。 又到了一年金三銀四,回想到很多年前我剛參加工作時的面試經歷,那時都是呆呆地等著面試官問問題,被問到一些自己并不熟悉的問題時要不就是思考半天也切不中要點,要不就只能無奈地回答并不清楚了。...

    史占廣 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<