2012-11-01 273 views
1

SO!如何將參數傳遞給傳遞給itertools.groupby的keyfunc?

下面是使用itertoos.groupby功能:

from string import whitespace, punctuation 
from itertools import groupby 

def tokenize(phrase, sepcat=True): 
    separators = dict.fromkeys(whitespace + punctuation, True) 
    return [''.join(g) for k, g in groupby(phrase, separators.get)] 

眼下,輸出如下:

正如你所看到的,連續的分離器連接成一個字符串。我希望這種行爲是可選的(如我的功能sepcat參數所示),但這是我遇到障礙的地方......我如何將參數傳遞給separators.get

functools可以幫我嗎?

+0

你不能這樣做,因爲製作你使用 - 這是GROUPBY做什麼 - 這組匹配元素的運行... –

回答

2

使用lambda:

groupby(..., lambda x: my_normal_function(x, other, arguments))