(2)统计以下人名s中出现次数最高的前三名,输出统计结果
时间: 2024-02-23 20:59:28 浏览: 24
要统计人名出现次数,可以使用Python的字典数据类型。下面是一个可能的实现:
```python
s = "Tom Jerry Alice Tom Bob Alice Tom Jerry Tom"
# 使用空格分割人名,得到一个列表
names = s.split()
# 创建一个空的字典
name_count = {}
# 统计每个人名的出现次数
for name in names:
if name in name_count:
name_count[name] += 1
else:
name_count[name] = 1
# 按照出现次数从大到小排序
sorted_names = sorted(name_count.items(), key=lambda x: x[1], reverse=True)
# 输出前3个人名和他们的出现次数
for i in range(3):
print(f"{sorted_names[i][0]}: {sorted_names[i][1]}")
```
在这个示例中,我们首先使用split方法将字符串s分割成一个人名列表。然后,我们创建一个空的字典,并使用一个for循环统计每个人名的出现次数。最后,我们使用sorted函数按照出现次数从大到小排序,并输出前三个人名和他们的出现次数。
这个示例输出的结果是:
```
Tom: 4
Jerry: 2
Alice: 2
```
相关问题
统计 《三国演义》中每个人物的出场次数,输出前10名
好的,你可以使用以下Python代码实现:
```python
import re
# 读取文本内容
with open('sgyy.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则表达式找出所有人名
pattern = re.compile('[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*')
names = pattern.findall(content)
# 统计每个人名出现的次数
name_count = {}
for name in names:
if name in name_count:
name_count[name] += 1
else:
name_count[name] = 1
# 按出场次数从大到小排序
top10 = sorted(name_count.items(), key=lambda x: x[1], reverse=True)[:10]
# 输出前10名
for i, (name, count) in enumerate(top10):
print(f'{i+1}. {name} 出场次数:{count}')
```
其中,`sgyy.txt`是《三国演义》的文本文件,需要与代码文件在同一目录下。代码会使用正则表达式找出所有人名,并统计每个人名出现的次数。最后,按出场次数从大到小排序,输出前10名。
python统计人名出现次数
你可以使用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。最后,打印出字典中每个名字出现的次数。