我有很多想要存储在缓冲区中的主题,但每个主题的录制时间不应超过10秒。对于几个主题,这行很好,但如果我想订阅所有主题,它开始落后。我需要使用比重新编写新列表更有效的东西,我需要弹出所有超过10秒的元素。
buffer[topic] = [ msg for msg in buffer[topic] if timestamp - msg[0] < rospy.Duration(10.0) ]
每个主题都有一个时间戳,如果此时间戳大于10秒,我们要删除这些元素。希望你们能帮忙。
答案 0 :(得分:0)
您可以尝试使用馆藏库中的deque
(https://docs.python.org/2/library/collections.html#collections.deque),并在邮件太旧时调用popleft
。