recipe-578416.py 文件源码

python
阅读 16 收藏 0 点赞 0 评论 0

项目:code 作者: ActiveState 项目源码 文件源码
def splitby(pred, seq):

    trues = deque()
    falses = deque()
    iseq = iter(seq)

    def pull(source, pred, thisval, thisbuf, otherbuf):
        while 1:
            while thisbuf:
                yield thisbuf.popleft()
            newitem = next(source)
            # uncomment next line to show that source is processed only once
            # print "pulled", newitem
            if pred(newitem) == thisval:
                yield newitem
            else:
                otherbuf.append(newitem)

    true_iter = pull(iseq, pred, True, trues, falses)
    false_iter = pull(iseq, pred, False, falses, trues)
    return true_iter, false_iter
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号