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

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])
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 於黾 2021-12-08 10:20
    关注

    出题的人不会说人话吗
    什么叫统计并输出每个姓氏的学生信息,都有什么信息,需要统计什么信息?
    比如一个张三,一个张四,那统计张姓学生信息的时候除了数量2之外,还有什么信息需要合并在一起?
    什么都不告诉统计个屁呀

    评论
  • 菜猫小六 2021-12-08 10:56
    关注
    1. 按行读取文件得到每一行(每一个)学生的信息;
    2. split或者其他操作得到姓名,然后继续split或者找个姓氏表拿到每个学生的姓氏;
    3. 把姓氏当作key,把所有学生的信息用json存起来。

    要是没理解错题的话,主要就是按照姓氏分类把,还是说我理解错了。。。。。。

    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 I350 Gigabit Network
  • ¥15 关于#abap#的问题,请各位专家解答!
  • ¥20 内网通过公网访问外网问题
  • ¥20 谁有这个东西 继续教育的
  • ¥15 怎么使请求通过cors
  • ¥15 WDM 驱动ACPI 相关疑问
  • ¥15 prism 跨窗体共享数据绑定 wpf
  • ¥15 hdl designer突然用不了系统的moduleware组件,请问有人遇到或者怎么解决吗?
  • ¥15 0基础计算机毕设,应该从哪开始?
  • ¥60 使用DKT40脑图划分ROI区域