每10秒清空一个Python deque
我有一个Python deque,每次我都会在这个deque中附加它每10秒清空一个Python deque,python,Python,我有一个Python deque,每次我都会在这个deque中附加它 pre_label = collections.deque(maxlen=5) while True: #do something function(name) pre_label.append() 我有: pre_label = deque(['john', 'zari', 'fai'], maxlen=3) 我希望每10秒有以下输出: pre_label = deque([], ma
pre_label = collections.deque(maxlen=5)
while True:
#do something
function(name)
pre_label.append()
我有:
pre_label = deque(['john', 'zari', 'fai'], maxlen=3)
我希望每10秒有以下输出:
pre_label = deque([], maxlen=3)
因此,有两种方法可以让我立即做到这一点:
从集合导入数据
甲板=deque([],最大=3)
##螺纹溶液
从线程导入线程
导入时间
def clear_deque():
“”“这是一个小函数,用于清除队列并在清除时打印内容”“”
global deck#您可能应该避免使用global,但我们需要一个对底层对象的引用,以使clear实际起作用。
虽然(正确):
时间。睡眠(3)#你应该把这个增加到10。此外,在开始睡觉之前,要留出一段时间,以便在第一次清理之前进行。
内容=列表(甲板)
甲板=deque([],最大=3)
打印(“\n |>Deck={}”。格式(内容))
t=Thread(target=clear_deque)#创建一个新线程来调用这个函数
t、 daemon=True#将线程标记为守护进程,以便在程序正常退出时将其终止
t、 start()#annd启动线程!
#和一个哑循环来验证功能
尽管如此:
v=输入(“添加内容>”)
甲板。附加(v)
t、 加入
导入异步IO
随机输入
从集合导入deque
甲板=deque([],最大=10)
异步def clear_deque():
全球甲板
尽管如此:
等待asyncio.sleep(3)
内容=列表(甲板)
打印(f“\n |>组内容:{contents}”)
甲板=deque([],最大=10)
异步定义添加到定义():
尽管如此:
等待asyncio.sleep(random.random())
v=随机随机随机数(1,10)
打印(f“添加:{v}”)
甲板。附加(v)
loop=asyncio.get\u event\u loop()
actions=asyncio.gather(将_添加到_-deque(),清除_-deque())
循环。运行\u直到\u完成(操作)