1

我有很多主题要存储在缓冲区中,但每个主题的记录时间不应超过 10 秒。对于几个主题,这条线运行良好,但如果我想订阅所有主题,它就会开始落后。我需要使用比重写新列表更有效的方法,我需要弹出所有超过 10 秒的元素。

buffer[topic] = [ msg for msg in buffer[topic] if timestamp - msg[0] < rospy.Duration(10.0) ]

每个主题都有一个时间戳,如果这个时间戳大于 10 秒,我们要删除这些元素。希望各位大神帮忙。

4

1 回答 1

0

您可以尝试使用deque集合库中的一个 ( https://docs.python.org/2/library/collections.html#collections.deque ) 并popleft在消息太旧时调用。

于 2016-11-21T13:17:44.750 回答