如何从指定次数的循环中提取值并生成按薪资升序的元组
Python职业薪资排序程序补全方案
需求回顾
需要完成的程序流程:
- 询问待分析的人数(示例输入3)
- 依次输入每个人的职业和薪资(示例:Doctor/350000、Teacher/60000、CEO/1000000)
- 将收集到的信息以
(profession, salary)元组形式,按薪资升序输出
补全后的完整代码
number_person = input("请输入待分析的人数: ") # 初始化空列表存储职业薪资元组 person_list = [] for i in range(int(number_person)): profession = input("请输入职业: ") # 将薪资转为整数,避免字符串排序逻辑错误 salary = int(input("请输入薪资: ")) # 将职业和薪资组成元组加入列表 person_list.append((profession, salary)) # 按薪资升序排序,key指定取元组的第二个元素(薪资)作为排序依据 sorted_persons = sorted(person_list, key=lambda x: x[1]) # 输出排序后的结果 print("按薪资升序排序后的结果:") for item in sorted_persons: print(item)
关键说明
- 薪资类型转换:必须将输入的薪资转为整数
int(),否则默认字符串类型排序会出现"1000000"排在"60000"前面的逻辑错误 - 排序逻辑:使用
sorted()函数,通过lambda x: x[1]指定以元组中的第二个元素(薪资)作为排序依据,默认即为升序排列 - 结果输出:遍历排序后的列表,逐个输出元组,完全匹配需求格式
内容的提问来源于stack exchange,提问作者TheCodeHunter
相关产品推荐
相关产品推荐

