保留最后N个元素
作者:互联网
1. collections中的deque函数可以进行匹配,并返回匹配的最后N行
from collections import deque def search(lines,pattern,history=5): previous_lines = deque(maxlen=history) for line in lines: if pattern in line: yield line,previous_lines #表达式的生成器函数 previous_lines.append(line)
使用deque(maxlen=N)时,会形成一个新的固定的队列,当新的元素加入并且队满时,最老的元素就会被替代。
例如:
b = deque(maxlen=3) b.append(1) b.append(2) b.append(3) print(b) ##deque([1, 2, 3]) b.append(4) print(b) ##deque([2, 3, 4])
deque可以用在任何一个简单队列数据结构的场合如果不设置大小,队列可以无限大
标签:deque,保留,元素,最后,maxlen,line,lines,append,previous 来源: https://www.cnblogs.com/zengjirong/p/16427143.html