一个兴趣使然的程序猿罢了 2021-12-08 10:16 采纳率: 75%
浏览 439
已结题

Python按照姓氏统计的各个学生信息

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

  • 写回答

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条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月8日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题