在Unicode对象上,translate方法的工作方式不同于在字节字符串对象上:
>>>帮助(unicode.translate)
S.translate(table)-> unicode
返回字符串S的副本,其中所有字符均已映射
通过给定的转换表,该表必须是
从Unicode序号到Unicode序号,Unicode字符串或无。
未映射的字符保持不变。字符映射为无
被删除。
因此,您的示例将变为:
remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)
word_list = [s.translate(remove_punctuation_map) for s in value_list]
但是请注意,string.punctuation
仅包含ASCII标点符号。完全Unicode具有更多的标点符号字符,但这全部取决于您的用例。