如何返回python3.6过滤器函数的列表?

2024-10-01 13:38:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我定义了一个函数来从标记列表中删除字符:

def remove_characters_after_tokenization (tokens):
     pattern = re.compile('[{}]'.format(re.escape(string.punctuation)))
     filtered_tokens = filter(None, [pattern.sub('', token) for token in tokens])
     return filtered_tokens

然后我在令牌列表中调用该函数:

^{pr2}$

结果如下:

filter object at 0x000000000F607F98,
filter object at 0x000000000F607C50>,
filter object at 0x000000000F607C18>

我错过了什么?为什么filter和{}的组合不返回一个带有已清理标记的列表?在

这并不是建议的重复问题的重复,因为我已经尝试从该问题中获得解决方案(如我的代码所示)。我还尝试了“”连接方法。在

另外,我刚试过这个,结果还是一样的:

tokenListCharsRemoved = []
for sentence_token in tokenList:
       i = filter(None,[remove_characters_after_tokenization(tokens) for tokens in sentence_token])
       tokenListCharsRemoved.append(i)

pprint(list(tokenListCharsRemoved))

Tags: 函数in标记token列表forobjectfilter