use*_*547 13 python struct udp list pack
我想将列表中的所有数据打包到单个缓冲区中以通过UDP套接字发送.列表相对较长,因此索引列表中的每个元素都很繁琐.这是我到目前为止:
NumElements = len(data)
buf = struct.pack('d'*NumElements,data[0],data[1],data[2],data[3],data[4])
Run Code Online (Sandbox Code Playgroud)
但我想做一些pythonic,如果我在列表中添加更多元素,则不需要更改调用...类似于:
NumElements = len(data)
buf = struct.pack('d'*NumElements,data) # Returns error
Run Code Online (Sandbox Code Playgroud)
这样做有好办法吗?
aba*_*ert 15
是的,您可以使用*args
调用语法.
而不是这个:
buf = struct.pack('d'*NumElements,data) # Returns error
Run Code Online (Sandbox Code Playgroud)
… 做这个:
buf = struct.pack('d'*NumElements, *data) # Works
Run Code Online (Sandbox Code Playgroud)
请参阅教程中的解压缩参数列表.(但实际上,请阅读4.7节的全部内容,而不仅仅是4.7.4节,或者您不会知道"反向情况......"指的是......)简要说明:
...当参数已经在列表或元组中但需要为需要单独位置参数的函数调用解包时...用*-operator编写函数调用以从列表或元组中解压缩参数...
归档时间: |
|
查看次数: |
12241 次 |
最近记录: |