python6.6红楼梦人物统计
时间: 2023-10-13 22:23:59 浏览: 188
好的,以下是使用Python 3.6实现的红楼梦人物统计代码:
```python
with open('红楼梦.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 去除标点符号和换行符
content = content.replace('\n', '').replace('\r', '').replace(',', '').replace('。', '').replace('!', '').replace('?', '').replace('、', '').replace(';', '').replace(':', '').replace('“', '').replace('”', '').replace('‘', '').replace('’', '').replace('『', '').replace('』', '').replace('(', '').replace(')', '').replace('《', '').replace('》', '').replace('【', '').replace('】', '').replace('[', '').replace(']', '').replace('〔', '').replace('〕', '').replace('—', '').replace('…', '')
# 将文本按照空格分隔成单词列表
words_list = content.split(' ')
# 统计每个人物出现的次数
characters_count = {}
for word in words_list:
if word in characters_count:
characters_count[word] += 1
else:
characters_count[word] = 1
# 取出出现次数前20的人物
top_characters = sorted(characters_count.items(), key=lambda x: x[1], reverse=True)[:20]
# 输出结果
print('{:<10}{:<10}'.format('人物', '出现次数'))
for character, count in top_characters:
print('{:<10}{:<10}'.format(character, count))
```
在该代码中,我们首先读取红楼梦的文本内容,并将其去除标点符号和换行符等无用字符,然后将文本按照空格分隔成单词列表。接着,我们统计每个人物出现的次数,并取出出现次数前20的人物。最后,我们将结果输出。
需要注意的是,该代码只是一个简单的示例,可能不能完全准确地统计红楼梦中每个人物的出现次数,因为有些人物可能有多个名字或别名,而且有些人物可能只出现在某些章节中。如果需要更准确的结果,可能需要更复杂的算法。
阅读全文