文本文件中保存了学生的学号、姓名信息,每个学生的信息占一行。
请统计并输出每个姓氏的学生信息。
乍一看很简单,大家有思路吗,反正我是没有

Python按照姓氏统计的各个学生信息
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 木61_ 2021-12-08 11:00关注
#用于储存所有学生信息 message = [] #用于储存学生姓氏和该姓氏的人数 surname = {} with open("student.txt") as f: for eachLine in f: #将未知格式的学号和姓名拆分 number = "" name = "" for eachStr in eachLine: try: number += str(int(eachStr)) except ValueError: name += eachStr #将姓名和学号重新打包成列表,放进总列表里 #用strip()防止空格出现,其他未知字符没做处理 message.append([name.strip(), number]) #统计各姓氏人数 for each in message: if each[0][0] not in surname: surname[each[0][0]] = 1 else: surname[each[0][0]] += 1 #打印各姓氏人数及学生信息 for each in surname: print(f"\n【{each}】 姓学生有 【{surname[each]}】 名") for i in range(len(message)): if each in message[i][0]: print(message[i])
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用