实际案例
在设计某网络程序时,我们自定义了一个基于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>>"
第一种方法是利用加号(+)
1
2
3
4
5
6
7
8
9
10
11
|
In
[
1
]
:
s
=
[
"<0112>"
,
"<32>"
,
"<1024x768>"
,
"<60>"
,
"<1>"
,
"<100.0>"
,
"<500.0>"
.
.
.
:
]
In
[
2
]
:
z
=
''
In
[
3
]
:
for
x
in
s
:
.
.
.
:
z
+=
x
.
.
.
:
In
[
4
]
:
print
(
z
)
<
0112
>
<
32
>
<
1024x768
>
<
60
>
<
1
>
<
100.0
>
<
500.0
>
|
另外一种方式是 join 方法:
1
2
3
4
|
In
[
5
]
:
ss
=
''
.
join
(
s
)
In
[
6
]
:
ss
Out
[
6
]
:
'<0112><32><1024x768><60><1><100.0><500.0>'
|
如果s 中字符串中有其他类型呢?
可以采用
[code]
''.join([str(x) for x in s])
#这种方式 列表解析
如果数据量较大,可以考虑生成器
In [7]: (str(x) for x in s)
Out[7]: <generator object <genexpr> at 0x10b58e468>
In [8]: ''.join((str(x) for x in s))
Out[8]: '<0112><32><1024x768><60><1><100.0><500.0>'
最优迭代