2016-12-03 12 views
-1

私はリスト内のすべてのアイテムに適用したいジェネレータ関数を持っています。だから私は、私は「力」それはmap(list(foo),var_list)を使用して計算するためにするつもりですが、Pythonはそれはちょうどナンセンスだ私に語ったと思っていジェネレータをリストにマッピングする

[<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>]

map(foo,var_list)を行う は、私のような結果を取得します。

私はリスト内包でやりたいことができますが、私は地図でそれを行う方法について頭を上げることはできません。

のコード例では、

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' 

ですそして、私の失敗したコマンドを使用すると、lambdaを使用することができます。この場合map(window,input.split())

+2

my_listの項目に対して 'map(list、map(foo、my_list))'や '[list(foo(item))'を ' – AChampion

答えて

1

です:

map(lambda e: list(foo(e)), your_list) 

これは、各要素your_listeためlist(foo(e))を適用します。

関連する問題