制作一个函数来计算我以纯文本格式下载的书中20个最常用的单词。我要说的python教科书说使用import string
然后使用replace
或translate
方法删除任何标点符号,但是当我在替换步骤后打印出行后,所有的线条都有标点符号。我尝试移动line = line.strip()
和line = line.replace(string.punctuation,'')
步骤,但这不起作用。我从来没有使用过替换,所以我可能会误用我知道的所有内容。我的其他程序都有效,只是这一步令我感到沮丧。
import string
def function():
infile = open('gutbook.txt','r',encoding='utf-8')
count = dict()
list2 = list()
for line in infile:
line = line.strip()
line = line.replace(string.punctuation,'')
line = line.lower().split()
if line== []:
continue
for i in line:
count[i] = count.get(i,0) + 1
for key,value in count.items():
newtuple = (value,key)
list2.append(newtuple)
list3 = sorted(list2,reverse = True)
print(list3[:20])
function()
答案 0 :(得分:0)
使用Regex。
<强>实施例强>
import re
import string
text = "Hello ! #$%&'()*+,-./:;<=>?@[\]^_`{|}~ World"
print(re.sub("[" + re.escape(string.punctuation) + "]", "", text))
#or
print( re.sub(r'[^a-zA-Z0-9\s]','',text) )