第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python字符串“ join”比“ +”要快(?),但這里出了什么問題?

Python字符串“ join”比“ +”要快(?),但這里出了什么問題?

GCT1015 2019-09-24 16:19:50
我在較早的帖子中詢問了用于批量動態(tài)字符串連接的最有效方法,并建議我使用join方法,這是最好,最簡單和最快的方法(每個人都這么說)。但是,當(dāng)我使用字符串連接時,我發(fā)現(xiàn)了一些奇怪的結(jié)果。我敢肯定有些事情正在發(fā)生,但我不能完全理解。這是我所做的:我定義了以下功能:import timeitdef x():    s=[]    for i in range(100):        # Other codes here...        s.append("abcdefg"[i%7])    return ''.join(s)def y():    s=''    for i in range(100):        # Other codes here...        s+="abcdefg"[i%7]    return sdef z():    s=''    for i in range(100):        # Other codes here...        s=s+"abcdefg"[i%7]    return sdef p():    s=[]    for i in range(100):        # Other codes here...        s+="abcdefg"[i%7]    return ''.join(s)def q():    s=[]    for i in range(100):        # Other codes here...        s = s + ["abcdefg"[i%7]]    return ''.join(s)我試圖使其他功能(除了串聯(lián))在整個函數(shù)中幾乎相同。然后,我對以下內(nèi)容進行了測試,并在注釋中給出了結(jié)果(在Windows 32位計算機上使用Python 3.1.1 IDLE):timeit.timeit(x) # 31.54912480500002timeit.timeit(y) # 23.533029429999942 timeit.timeit(z) # 22.116181330000018timeit.timeit(p) # 37.718607439999914timeit.timeit(q) # 108.60377576499991這意味著它表明strng = strng + dyn_strng是最快的。盡管時間差異不是很大(最后一個除外),但是我想知道為什么會這樣。那是因為我使用的是Python 3.1.1,并且提供的“ +”效率最高?我應(yīng)該使用“ +”代替加入嗎?還是我做了一件非常愚蠢的事情?要不然是啥?請清楚解釋。
查看完整描述

3 回答

  • 3 回答
  • 0 關(guān)注
  • 1085 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號