如何將多個小字串拼接成乙個大字串

2021-08-05 00:00:01 字數 1732 閱讀 6061

實際案例

在設計某網路程式時,我們自定義了乙個基於udp的網路協議,按照固定次序向伺服器傳遞一系列引數:

hwdetect: 「<0112>」

gxdepthbits 「<32>」

gxresolution: 「<1024x768>」

gxrefresh: 」<60>」

fullalpha: 「<1>」

loddist: 「<100.0>」

distcull: 「<500.0>」

在程式中我們將各個引數按次序收集到列表中:

[「<0112>」, 「<32>」, 「<1024x768>」, 「<60>」, 「<1>」, 「<100.0>」, 「<500.0>」]

最終我們要把各個引數拼接成乙個資料報進行傳送:

「<0112><32><1024x768><60><1><100.0><500.0>>」

解決方案:

- 方法一:迭代列表,連續使用『+』操作依次拼接每乙個字串

- 方法二:使用str.join(),更加快速的拼接列表中所有字串

方法一迭代列表,連續使用『+』操作依次拼接每乙個字串,其**如下:

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

pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]

s = ""

for p in pl:

s += p

print s

其輸出結果為:

<0112>

<32>

<1024x768>

<60>

<1>

<100.0>

<500.0>

其實我們採用」+」進行字串拼接,實際上是運算子過載,在字串拼接時呼叫了str.__add__()。若有興趣可查閱python官方文件。

方法二使用str.join(),更加快速的拼接列表中所有字串,其**如下:

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

pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]

s = "".join(pl)

print

s

其輸出結果如下:

<0112>

<32>

<1024x768>

<60>

<1>

<100.0>

<500.0>

對於方法一,若我們將方法一的中間結果列印輸出,我們就會發現方法一存在很嚴重的問題,每一次字串拼接操作python的直譯器都要進行記憶體的申請與**,一旦所需拼接的字串過多,其執行效率會大打折扣。

l = ["abc", 123, 'xyz']

# 通過生成器解析將每個元素轉為str型別

s = "".join(str(x) for x in l)

print s

其執行結果如下:

abc123xyz
當我們處理的列表中既有字串,又有非字串的資料時,我們可以使用生成器表示式或列表解析將列表中的每個元素轉為str型別。(注:具體關於列表解析與生成器表示式的效率問題,可參考傑瑞的專欄。)

4 4將多個小字串頻拼接成乙個字串

coding utf 8 實際案例 在設計某網路程式時,我們自定義了乙個基於udp的網路協議,按照固定次序向伺服器傳遞一系列引數 hwdetect 0112 gxdepthbits 32 在程式中我們將各個引數按次序收集到列表中 0112 32 1024 768 最終我們要把各個引數拼接成agiel...

MSSQL如何將查詢結果拼接成字串

在博問上看到乙個提問 mssql如何將查詢結果拼接成字串 想了一下應該怎麼實現呢,在c 等語言下好實現,但在sql裡實現 還真沒做過。目標 想要在sql中將查詢的結果拼接為 1 2 3 4 5 分析 要進行拼接就要取得每行的值,想到了游標可以做到。於是有了下面的方法 select name from...

python 如何將字串作為乙個物件?

如果閱讀了本系列前兩篇文章中的任何一篇文章,那麼在您的腦海中會立即浮現出這樣一句話 在 python 中,所有事物都是物件。到目前為止,我還沒有涉及到關於 python 中的字串的物件特性的問題,但是,與往常一樣,python 中的字串就是物件。事實上,字串物件是 str 類的乙個例項。正如您在 探...