相邻对的Python映射器

时间:2014-10-16 00:59:14

标签: python mapreduce stdin

我正在尝试编写一个mapreduce程序,这是地图部分,它从stdin文本返回bigrams或相邻的单词对。

这是我的概念/ half-pseudo:

for line in sys.stdin:
    line = line.strip()
    words = line.split()

    for pair in words: #HERE***
        print '%s\t%s' % (pair,1)

我如何提取相邻的一对单词,以便输出所有相邻的单词对,例如" word1 word2,1"所以在我的减速机中我可以将它们组合起来?我希望尽可能保持格式尽可能接近。

谢谢。

1 个答案:

答案 0 :(得分:2)

你可以这样配对:

from itertools import tee

def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return zip(a, b)