我想在python中创建一个有效的循环缓冲区(目标是取缓冲区中的整数值的平均值).
这是使用列表收集值的有效方法吗?
def add_to_buffer( self, num ):
self.mylist.pop( 0 )
self.mylist.append( num )
Run Code Online (Sandbox Code Playgroud)
什么会更有效(以及为什么)?
我正在处理来自spinn3r的数据,它包含序列化为字节流的多个不同的protobuf消息:
http://code.google.com/p/spinn3r-client/wiki/Protostream
"protostream是一个协议缓冲消息流,根据Google协议缓冲区规范在线上编码为长度前缀变量.该流有三个部分:头部,有效负载和尾部标记."
这似乎是protobufs的一个非常标准的用例.实际上,protobuf核心发行版为C++和Java提供了CodedInputStream.但是,似乎protobuf没有为python提供这样的工具 - '内部'工具没有为这种外部使用设置:
https://groups.google.com/forum/?fromgroups#!topic/protobuf/xgmUqXVsK-o
所以...在我去拼凑一个python varint解析器和工具来解析不同消息类型的流之前:有没有人知道这个的任何工具?
为什么protobuf缺少它?(或者我只是没找到它?)
对于protobuf而言,这似乎是一个很大的差距,特别是与thrift的"运输"和"协议"的等效工具相比.我正确地查看了吗?