line.translate((None, string.punctuation))
做了什么以及它意味着什么?
import string
ahmed = open('whatever.txt')
counts = dict()
for line in ahmed:
line = line.translate((None, string.punctuation))
答案 0 :(得分:1)
这可能是Python 2的代码示例,str.translate
用于获取第二个参数deletechars
,它将从字符串中删除所有这些字符(这里,这意味着删除所有标点符号):
https://docs.python.org/2/library/stdtypes.html#str.translate:
str.translate(table[, deletechars])
返回字符串的副本,其中删除了可选参数deletechars中出现的所有字符,其余字符已通过给定的转换表进行映射,转换表必须是长度为256的字符串。
在Python 3中,此参数作为str.translate
的API的一部分被删除,现在要删除的字符将映射到None
。
https://docs.python.org/3/library/stdtypes.html#str.translate:
str.translate(table)
返回字符串的副本,其中每个字符已通过给定的转换表进行映射。该表必须是通过 getitem ()实现索引的对象,通常是映射或序列。当由Unicode序数(整数)索引时,表对象可以执行以下任何操作:返回Unicode序号或字符串,以将字符映射到一个或多个其他字符; return None,从返回字符串中删除字符;或者引发LookupError异常,将字符映射到自身。