我需要找到文件中的单词数量。长度> = 1并且删除了开头和结尾非字母数字字符的任何字母数字字符序列都算作一个单词。
这是我到目前为止的代码:
num_words = 0
textfile = open('gettysburg.txt', 'r').read()
words = textfile.split()
for word in words:
if len(word) >= 1:
num_words +=1
print(num_words)
计数器给了我268,但文中有271个单词。有四个单词用短划线或" - "被计为2个字。如何剥离非字母字符以显示这4个字?
答案 0 :(得分:1)
我不认为你想要删除连字符,你只需要将它们标记为能够成为一个单词的字符。您可以使用正则表达式。
re.findall('[\w\-]+', 'words in sentence. some hyphenated-together.')
给出
['words', 'in', 'sentence', 'some', 'hyphenated-together']
答案 1 :(得分:0)
string.split()
函数采用参数str
,默认情况下为空白。
您还可以更改字符串应拆分的字母。
num_words = 0
textfile = open('gettysburg.txt', 'r').read()
words = textfile.split()
for word in words:
count = len(word.split(str = "-"))
num_words += count
print(num_words)
Python Tutorials对该函数有一个很好的描述。