如何将参数传递给传递给itertools.groupby的keyfunc?

问题描述:

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做什么 - 这组匹配元素的运行... –

使用lambda:

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