python统计人名出现次数
时间: 2023-09-27 11:06:53 浏览: 256
你可以使用Python中的字典(dictionary)来统计人名出现的次数。以下是一个示例代码:
```python
names = ["Alice", "Bob", "Charlie", "Alice", "David", "Charlie", "Alice"]
name_counts = {}
for name in names:
if name in name_counts:
name_counts[name] += 1
else:
name_counts[name] = 1
print(name_counts)
```
输出结果为:
```
{'Alice': 3, 'Bob': 1, 'Charlie': 2, 'David': 1}
```
这段代码首先创建了一个包含人名的列表 `names`,然后创建了一个空字典 `name_counts`。接下来,我们遍历列表中的每个名字,如果该名字已经在字典中出现过,就将其计数加1,否则,将该名字作为字典的一个新键,并将其计数设置为1。最后,打印出字典中每个名字出现的次数。
相关问题
python统计人物出现次数
你可以使用Python的字典以及字符串处理函数来实现统计人物出现次数的功能。具体的实现步骤如下:
1. 读取文本文件中的所有内容,并将其存储到一个字符串中。
2. 将字符串中的标点符号、数字、空格等无关信息去除,只保留字母和中文字符。
3. 将字符串中的每个单词按照空格进行分割,并将其存储到一个列表中。
4. 遍历列表中的每个单词,如果该单词是人名,则将其存储到字典中,并增加该人名的出现次数;否则,忽略该单词。
5. 最后,输出字典中每个人名及其出现次数。
下面是一个示例代码,它可以统计文本文件中人物出现的次数:
```python
import re
# 读取文本文件中的所有内容
with open('sample.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 去除标点符号、数字、空格等无关信息
content = re.sub('[^a-zA-Z\u4e00-\u9fa5]+', '', content)
# 将字符串中的每个单词按照空格进行分割,并将其存储到一个列表中
words = content.split()
# 统计人物出现次数
person_count = {}
for word in words:
if len(word) > 1 and (word[0] == '张' or word[0] == '李' or word[0] == '王'):
if word in person_count:
person_count[word] += 1
else:
person_count[word] = 1
# 输出人物出现次数
for name, count in person_count.items():
print(name, count)
```
在上面的示例代码中,我们假设人名的第一个字一定是“张”、“李”或“王”,并将其作为人名的判断条件。你可以根据自己的实际需求来修改判断条件。
使用python统计人物出现的次数
下面是一个示例代码,可以用来统计《红楼梦》中出现的人物及其出现次数:
```python
import re
# 读取文本文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用正则表达式匹配人名
pattern = r'[\u4e00-\u9fa5]{2,4}(?![\u4e00-\u9fa5])'
names = re.findall(pattern, text)
# 统计出现次数
name_count = {}
for name in names:
if name in name_count:
name_count[name] += 1
else:
name_count[name] = 1
# 按出现次数排序
sorted_name_count = sorted(name_count.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for name, count in sorted_name_count:
print(name, count)
```
说明:
1. 首先使用 `open()` 函数打开文本文件,并使用 `read()` 方法读取文件内容,保存在变量 `text` 中。
2. 使用正则表达式 `pattern` 匹配文本中的人名,并使用 `findall()` 方法将所有匹配结果保存在列表 `names` 中。
3. 使用字典 `name_count` 统计每个人名出现的次数。
4. 使用内置函数 `sorted()` 对字典 `name_count` 进行按值排序,并保存结果在列表 `sorted_name_count` 中。
5. 使用 `for` 循环遍历列表 `sorted_name_count`,输出每个人名及其出现次数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)