python 已有csv文件有学生学号,姓名和性别 利用此文件统计姓名的名中字出现次数
时间: 2023-05-25 08:07:08 浏览: 93
假设csv文件名为student.csv,以下是实现代码:
```python
import csv
# 创建一个字典来记录每个名字中字出现的次数
name_freq = {}
with open('student.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
# 跳过第一行标题
next(reader)
for row in reader:
name = row[1] # 获取姓名
for char in name:
if char != ' ':
# 如果字典中已经有该字,次数加1;否则添加该字并将次数初始化为1
if char in name_freq:
name_freq[char] += 1
else:
name_freq[char] = 1
# 按照字频从高到低排序
freq_sorted = sorted(name_freq.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for item in freq_sorted:
print(f"{item[0]}:{item[1]}")
```
解释:
- 首先导入csv模块,创建一个空字典`name_freq`来记录每个名字中字出现的次数。
- 使用`with open()`语句打开csv文件,创建一个reader对象来读取文件中的数据。使用`next(reader)`跳过文件中的第一行标题。
- 对于每一行数据,获取其中的姓名`name`,遍历每个字并判断是不是空格,如果不是则将该字添加到字典`name_freq`中进行计数操作。
- 最后使用`sorted()`函数按照字频从高到低对字典进行排序,并使用循环输出结果。
阅读全文