保留最后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可以用在任何一个简单队列数据结构的场合如果不设置大小,队列可以无限大
微笑向暖安之若素,你若盛开清风自来

浙公网安备 33010602011771号