TypeError: maketrans() takes exactly 2 arguments (3 given)

TypeError: maketrans() takes exactly 2 arguments (3 given)

以下代码改编自网站,用于从单词中删除标点符号。

import string    
filename = 'some_file.txt'
file = open(filename, 'rt')
text = file.read()
file.close()
# split the text into words
words = text.split()

table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in words]
print(stripped[:100])

错误是"TypeError: maketrans() takes exactly 2 arguments (3 given)"。 我阅读了 Python 文档,其中说明了 maketrans() 具有 1、2 或 3 个参数的选项。 docs.python.org 表示:"If there is a third argument, it must be a string, whose characters will be mapped to None in the result"。 我正在使用 Python 2. 知道如何清除错误吗?

我认为您混淆了 python3.1 文档(在 "If there is a third argument, it...... " 语句中提到的地方。)与 Python2。根据 python2 文档 - https://docs.python.org/2/library/string.html,它不能有 3 个参数。

但是如果你想实现有第三个参数的功能(将一组字符映射到None),你可以通过将字符串添加到translate

stripped = [w.translate(table, string.punctuation) for w in words]