# -*- coding:utf-8 -*-
"""實際案例:
在設計某網路程式時,我們自定義了乙個基於udp的網路協議,
按照固定次序向伺服器傳遞一系列引數:
hwdetect: "<0112>"
gxdepthbits: "<32>"
....
在程式中我們將各個引數按次序收集到列表中:
["<0112>", "<32>", "<1024*768>", ....]
最終我們要把各個引數拼接成agiel資料報進行傳送.
"<0112><32><1024*768>...."
解決方案:
方法一:迭代列表,連續使用'+'操作依次拼接每乙個字串.
方法二:使用str.join()方法,耿佳快速的拼接列表中所有字串.
"""s1 = 'abcdefg'
s2 = '12345'
s = s1 + s2 # 呼叫的是str.__add__(s1, s2)過載函式生成的結果
# s1 > s2 # str.__gt__(s1, s2)
pl = ["<0112>", "<32>", "<1024>"]
s = ''
for p in pl:
s += p # 存在重複地建立字串臨時物件,釋放臨時結果的迴圈過程,浪費資源
print s
# <0112>
# <0112><32>
# <0112><32><1024>
';'.join(['abc', '123', 'xyz'])
''.join(['abc', '123', 'xyz']) # join方法不存在臨時資源浪費的情況
# abc;123;xyz
# abc123xyz
l = ['abc', 123, 45, 'xyz']
''.join([str(x) for x in l]) # 當字串很長時,也會對資源產生很大的開銷
# 使用生成器表示式:類似於列表解析,只不過換成圓括號 (str(x) for x in l)
# 它是乙個生成器物件at 0x7fa0d95d9b40>
''.join(str(x) for x in l)
如何將多個小字串拼接成乙個大字串
實際案例 在設計某網路程式時,我們自定義了乙個基於udp的網路協議,按照固定次序向伺服器傳遞一系列引數 hwdetect 0112 gxdepthbits 32 gxresolution 1024x768 gxrefresh 60 fullalpha 1 loddist 100.0 distcull...
將查詢結果拼接成字串
for xml path param 將查詢結果以xml格式輸出 1 select id,name from table1 for xml path 2 id和name為table1的真實字段 path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。上面sql的結果可如下 1 ...
MySQL 拼接成乙個字串
1.方法 concat str1,str2,返回結果為連線引數產生的字串。如有任何乙個引數為null 則返回值為 null。注意 此方法在轉換成字串的時候,如果有乙個引數為null 則返回結果為null.2.方法 concat ws 是 concat 的特殊形式,第乙個引數 separator 為分...