如何将参数传递给传递给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
可以帮我吗?
答
使用lambda:
groupby(..., lambda x: my_normal_function(x, other, arguments))
你不能这样做,因为制作你使用 - 这是GROUPBY做什么 - 这组匹配元素的运行... –