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

資訊專欄INFORMATION COLUMN

你所不知道的Python | 字符串連接的秘密

alin / 1451人閱讀

摘要:私房菜輸出私房菜方法使用方法方法是中出現(xiàn)的一種代替操作符的字符串格式化方法,同樣可以用來連接字符串。私房菜方法使用方法字符串有一個內(nèi)置方法,其參數(shù)是一個序列類型,例如數(shù)組或者元組等。

字符串連接,就是將2個或以上的字符串合并成一個,看上去連接字符串是一個非常基礎的小問題,但是在Python中,我們可以用多種方式實現(xiàn)字符串的連接,稍有不慎就有可能因為選擇不當而給程序帶來性能損失。

方法1:加號連接

很多語言都支持使用加號連接字符串,Python也不例外,只需要簡單的將2個或多個字符串相加就可以完成拼接。

a = "Python"
b = "私房菜"
r = a + b  # 輸出"Python私房菜"
方法2:使用%操作符

在Python 2.6以前,%操作符是唯一一種格式化字符串的方法,它也可以用于連接字符串。

a = "Python"
b = "私房菜"
r = "%s%s" % (a, b)  # 輸出"Python私房菜"
方法3:使用format方法

format方法是Python 2.6中出現(xiàn)的一種代替%操作符的字符串格式化方法,同樣可以用來連接字符串。

a = "Python"
b = "私房菜"
r = "{}{}".format(a, b)
方法4:使用f-string

Python 3.6中引入了Formatted String Literals(字面量格式化字符串),簡稱f-string,f-string是%操作符和format方法的進化版,使用f-string連接字符串的方法和使用%操作符、format方法類似。

a = "Python"
b = "私房菜"
r = f"{a}{b}"
方法5:使用str.join()方法

字符串有一個內(nèi)置方法join,其參數(shù)是一個序列類型,例如數(shù)組或者元組等。

a = "Python" 
b = "私房菜"
r = "".join([a, b])
對比測試

既然連接字符串有這么多方法,那么使用時到底選擇哪種呢?我們從代碼可讀性和性能兩個層面來評估一下上面5種方法。

使用timeit模塊,分別執(zhí)行上述5種方法的示例代碼100000次,執(zhí)行時間如圖。

可以看到,%操作符、format和f-string都是字符串格式化方法,性能依次遞增,加號連接的性能和f-string不相上下。

有一點需要注意的是,字符串類型是不可變的,所以每一次應用加號連接字符串都會生成一個新的字符串,連接多個字符串時,效率低下就是必然的了,我們將一次連接的字符串提升到10個和20個,再來進行2輪測試,下面是連接20個字符串時的耗時情況。

和連接兩個字符串時的結果出現(xiàn)了一些不同,首先使用加號連接的方式在字符串數(shù)量較多時(大于10個),性能會急劇下降,str.join()方法在連接大量字符串時性能最好。

總結

連接少量字符串時
使用加號連接符在性能和可讀性上都是明智的,如果對可讀性有更高的要求,并且使用的Python 3.6以上版本,f-string也是一個非常好的選擇,例如下面這種情況,f-string的可讀性顯然比加號連接好得多。

a = f"姓名:{name} 年齡:{age} 性別:{gender}"
b = "姓名:" + name + "年齡:" + age + "性別:" + gender

連接大量字符串時
joinf-string都是性能最好的選擇,選擇時依然取決于你使用的Python版本以及對可讀性的要求,f-string在連接大量字符串時可讀性并不一定好。切記不要使用加號連接,尤其是在for循環(huán)中。

歡迎關注我的公眾號【Python私房菜】

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41924.html

相關文章

  • 可能是最全面 python 符串拼接總結

    摘要:在中字符串連接有多種方式,這里簡單做個總結,應該是比較全面的了,方便以后查閱。方法是中出現(xiàn)的一種代替操作符的字符串格式化方法,同樣可以用來連接字符串。小結連接少量字符串時推薦使用號操作符。參考鏈接你所不知道的字符串連接的秘密 在 Python 中字符串連接有多種方式,這里簡單做個總結,應該是比較全面的了,方便以后查閱。 加號連接 第一種,通過+號的形式: >>> a, b = hell...

    Edison 評論0 收藏0
  • 關于JavaScript對象,所不知道事(一)- 先談對象

    摘要:對象與屬性讓我們保持耐心,再梳理一下對象與屬性的關系對象是屬性的集合,當對象的屬性是函數(shù)時,我們將其稱之為方法。 這篇博文的主要目的是為了填坑,很久之前我發(fā)表了一篇名為關于JavaScript對象中的一切(一) — 對象屬性的文章,想要談一談JavaScript對象,可那時只是貼了一張關于這個主題的思維導圖,今天我會針對這一主題進行展開,將JavaScript對象一些平常不太常用的知識...

    mykurisu 評論0 收藏0
  • 所不知道Python | 符串格式化演進之路

    摘要:然而為了讓我們更方便的使用這個常用功能,語言本身也在對字符串格式化方法進行迭代。不少使用過的小伙伴會知道其中的模板字符串,采用直接在字符串中內(nèi)嵌變量的方式進行字符串格式化操作,在版本中也為我們帶來了類似的功能字面量格式化字符串,簡稱。 字符串格式化對于每個語言來說都是一個非常基礎和常用的功能,學習Python的同學大概都知道可以用%語法來格式化字符串。然而為了讓我們更方便的使用這個常用...

    Blackjun 評論0 收藏0
  • 所不知道Python | 函數(shù)參數(shù)演進之路

    摘要:有一點需要注意的是,默認參數(shù)需要設置在必選參數(shù)后面,并且默認參數(shù)既可以通過位置調(diào)用,也可以通過關鍵字調(diào)用。通過位置指定參數(shù)通過位置指定參數(shù)報錯,默認參數(shù)必須在必選參數(shù)后面參數(shù)默認值既支持關鍵字參數(shù),也支持僅限關鍵字參數(shù)。 showImg(https://segmentfault.com/img/bVbdxcE?w=1224&h=618); 函數(shù)參數(shù)處理機制是Python中一個非常重要的...

    FingerLiu 評論0 收藏0

發(fā)表評論

0條評論

alin

|高級講師

TA的文章

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