标签:使用 定义 join() 列表 str 网络 ret 数据报 服务
需求:
在设计网络程序时,我们自定义了一个基于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、使用str.join()方法,更加快速的拼接列表中所有字符串
代码:
s = ["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]
#方法1:
a = ‘‘
for x in s:
a += x
print(a)
#方法2:str.join(self, iterable, /),xample: ‘.‘.join([‘ab‘, ‘pq‘, ‘rs‘]) -> ‘ab.pq.rs‘
result = ‘‘.join(s)
print(result)
#附:若列表中有字符串又有整数,该如何快速拼接
l = [‘abc‘,1,34,‘cde‘]
#方法一:利用列表推导式,若列表非常长开销大
ret = ‘‘.join([str(x) for x in l])
print(ret)
#方法二:利用生成器推导式,开销小
ret2 = ‘‘.join(str(x) for x in l) # 生成器推导式作为参数时,()可以省略。等价于:‘‘.join((str(x) for x in l))。<generator object <genexpr> at 0x0000024375AF49A8>
print(ret2)
标签:使用 定义 join() 列表 str 网络 ret 数据报 服务
原文地址:https://www.cnblogs.com/Richardo-M-Q/p/13276890.html