翻译函数给了我一个错误,我给了它2个成员,我应该恰好传递给它1。这是基于我目前使用的书籍的正确代码。我使用的是Python 3.4。
import string
fhand=open("c:\Python34\Leos code\mbox.txt")
dictsort = dict()
#decorate dictionary
for line in fhand:
line = line.translate(None, string.punctuation)
line = line.lower()
words = line.split()
for word in words:
if word not in dictsort:
dictsort[word]= 1
else:
dictsort[word] += 1
#sort dictionary
dictlst = []
for k,v in dictsort.items():
dictlst.append((v,k))
dictlst.sort(reverse=True)
for k,v in dictlst[:10]:
print (k,v)发布于 2015-07-24 04:43:05
应该添加一行代码,并修改翻译行:
remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)
line = line.translate(remove_punctuation_map)在Python3.x中,需要将元组传递给translate函数,因此需要在字典中创建元组,然后将其传递给translate方法。
https://stackoverflow.com/questions/31593219
复制相似问题