翻译功能给我一个错误,我给它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)
答案 0 :(得分:0)
应添加一行代码并修改翻译行:
remove_punctuation_map = dict((ord(char), None) for char in string.punctuation)
line = line.translate(remove_punctuation_map)
Python 3.x中有一个更改,其中元组需要传递给translate函数,因此需要先在字典中创建,然后传递给translate方法。