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

时间:2012-11-01 23:07:25

标签: python itertools functools

SO!

以下是使用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这样的东西可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

使用lambda:

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