Memory 具有时间戳的主题的rospy循环缓冲

Memory 具有时间戳的主题的rospy循环缓冲,memory,timestamp,buffer,ros,rospy,Memory,Timestamp,Buffer,Ros,Rospy,我有很多主题要存储在缓冲区中,但每个主题的记录时间不应超过10秒。对于一些主题,这一行功能很好,但如果我想订阅所有主题,它就开始落后了。我需要使用比重新编写新列表更有效的方法,我需要弹出所有超过10秒的元素 buffer[topic] = [ msg for msg in buffer[topic] if timestamp - msg[0] < rospy.Duration(10.0) ] buffer[topic]=[msg for msg in buffer[topic]if ti

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

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

每个主题都有一个时间戳,如果这个时间戳大于10秒,我们希望删除这些元素。希望你们能提供帮助。

您可以尝试使用收藏库()中的
deque
,并在邮件太旧时调用
popleft

您可以尝试使用收藏库()中的
deque
并在邮件太旧时调用
popleft