将生成器映射到列表

时间:2016-12-03 20:42:36

标签: python functional-programming

我有一个生成器函数,我想要应用于列表中的每个项目。 做一个 map(foo,var_list),给我一个结果:

[<generator object window at 0x7f20720b1050>, <generator object window at 0x7f20720b10a0>, <generator object window at 0x7f20720b10f0>, <generator object window at 0x7f20720b1140>, <generator object window at 0x7f20720b1190>]

所以我以为我会去“强迫”#39;它使用map(list(foo),var_list)来计算,但是python告诉我这只是废话。

我可以通过列表理解来做我想要的事情,但是我无法理解如何用地图做到这一点。

代码示例是

from itertools import islice

def window(seq, n=4):
    if len(seq)<n:
      yield seq
    "Returns a sliding window (of width n) over data from the iterable"
    "   s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...                   "
    it = iter(seq)
    result = tuple(islice(it, n))
    if len(result) == n:
        yield result    
    for elem in it:
        result = result[1:] + (elem,)
        yield result

result = []
input = 'Hello my name is Steven'

我失败的命令是map(window,input.split())

0 个答案:

没有答案