请编写一个程序,使用字典存储学生信息,学生信息包含学号和姓名,请根据学生学号从小到大输出学生信息

请编写一个程序,使用字典存储学生信息,学生信息包含学号和姓名,请根据学生学号从小到大输出学生信息

目录

列表输出

 这一题就可以借助于字典的推导式

通过字典输出的另一种方法


第一种方法

列表输出

dic = {}
i=1
while i >0:
    num = int(input("请输入学生学号:"))
    if num in dic.keys():
        print("已存在,请重新输入")
    elif num == 0:
        break
    else:
        name = input("请输入学生姓名:")
        dic[num]= name   #向字典中添加元素
#以上是字典的输入

list1= list(dic.keys())  #将字典里的key值生成列表
list1 = sorted(list1)  #使用sorted方法对列表排序
for j in range(len(list1)):
    print(list1[j],end = " ")   #循环输出已排好序列表的元素 即学号
    print(dic.get(list1[j]))   #通过学号获取相应的姓名

运行结果展示:

还可以通过字典推导式实现

字典推导式的格式为:{key:value for key,value in exiting_data_structure}

举个例子

good_list = {"牛奶":5,"面包":4,"矿泉水":2,"糖果":2,"辣条":3}
new_good_list={k:v for k,v in good_list.items() if v>=3}
print(new_good_list)

输出结果

 借助字典的推导式

dic = {}
i=1
while i >0:
    num = int(input("请输入学生学号:"))
    if num in dic.keys():
        print("已存在,请重新输入")
    elif num == 0:
        break
    else:
        name = input("请输入学生姓名:")
        dic[num]= name   #向字典中添加元素
#以上是字典的输入
list1= list(dic.keys())  #将字典里的key值生成列表
list1 = sorted(list1)  #使用sorted方法对列表排序

dic1 ={k :v  for k in list1 for x,v in dic.items() if k==x }
print(dic1)

运行结果

运用字典输出的另一种方法

dic = {}
i=1
while i >0:
    num = int(input("请输入学生学号:"))
    if num in dic.keys():
        print("已存在,请重新输入")
    elif num == 0:
        break
    else:
        name = input("请输入学生姓名:")
        dic[num]= name   #向字典中添加元素
#以上是字典的输入
list1= list(dic.keys())  #将字典里的key值生成列表
list1 = sorted(list1)  #使用sorted方法对列表排序

dic2 = {list1[i]:dic.get(list1[i]) for i in range(len(list1))} 
print(dic2)

运行结果

 

 

  • 16
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用Python语言编写程序使用字典存储学生信息,其中学号作为字典的键,姓名作为字典的值。可以使用sorted函数对字典的键进行排序,然后遍历字典输出学生信息。具体代码如下: ```python # 定义学生信息字典 students = { '001': '张三', '003': '李四', '002': '王五', '005': '赵六', '004': '钱七' } # 对学生信息字典的键进行排序 sorted_keys = sorted(students.keys()) # 遍历排序后的键,输出学生信息 for key in sorted_keys: print('学号:{},姓名:{}'.format(key, students[key])) ``` 输出结果为: ``` 学号:001,姓名:张三 学号:002,姓名:王五 学号:003,姓名:李四 学号:004,姓名:钱七 学号:005,姓名:赵六 ``` ### 回答2: 要编写这样一个程序,我们需要了解如何使用Python中的字典数据类型,以及如何根据学生学号进行排序输出。下面给出一个简单的实现方案。 首先,我们可以定义一个空的字典students来存储学生信息。然后,使用一个while循环来不断地输入学生信息,直到用户输入完成。在每次输入时,我们要求用户先输入学生学号,然后再输入学生姓名。我们将学号作为字典的键,将姓名作为字典的值,把它们添加到students字典中。 接下来,我们将字典的键(即学生学号)进行排序,这里可以使用Python中的sorted()函数来实现。sorted()函数默认按照键的字典序排序,因此不用担心学号是字符串还是数字。最后,我们可以遍历排序后的学生学号输出每个学号对应的姓名。 下面是完整的Python代码: ``` students = {} while True: number = input("输入学号(输入0停止输入):") if number == '0': break name = input("输入姓名:") students[number] = name sorted_numbers = sorted(students.keys()) print("学生信息如下:") for number in sorted_numbers: name = students[number] print("学号:%s,姓名:%s" % (number, name)) ``` 需要注意的是,上述代码未对输入的学号姓名做任何合法性检查,也没有考虑可能存在重复的学号的情况。实际应用中,我们需要根据实际情况来完善程序,并加入必要的异常处理机制。 ### 回答3: 本题可以使用Python编程语言来实现。需要使用Python中的字典存储学生信息学生信息包括学号姓名,然后根据学生学号从小到大输出学生的信息。 首先,可以创建一个空的字典存储学生信息,然后使用一个循环来输入学生信息,每次输入一个学生学号姓名,将其添加到字典中。 下面是代码实现: ```python students = {} # 创建一个空的字典存储学生信息 n = int(input("输入学生人数:")) # 输入学生人数 # 输入每个学生学号姓名,并将其添加到字典中 for i in range(n): s_id = input("输入第%d个学生学号:" % (i+1)) s_name = input("输入第%d个学生姓名:" % (i+1)) students[s_id] = s_name # 将字典中的学生信息学号从小到大排序,并输出每个学生的信息 sorted_keys = sorted(list(students.keys())) # 获取按学号排序后的字典键列表 print("按学号从小到大输出学生信息:") for key in sorted_keys: print("%s:%s" % (key, students[key])) ``` 在上面的代码中,首先输入学生的人数,然后使用循环输入每个学生学号姓名,并将其添加到字典中。最后,使用Python内置的sorted函数将字典中的学生信息学号从小到大排序,并输出每个学生的信息。 需要注意的是,在上面的代码中,使用了sorted函数对字典按键进行排序,需要将字典的键转换为列表来进行排序,否则会返回一个错误。同时,按照字典键的顺序输出字典中的元素,在Python 3.7版本之后,字典元素的顺序是有序的,但在早期版本中不一定有序,因此需要注意。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值