python - 从哪里开始:允许用户通过比较对元素进行排名的 Python 脚本
问题描述
在我工作的地方,我们会对候选人进行简历审查。我想在审查时尽可能公平,但我不禁觉得我只是将每份简历与我脑海中的任意一份进行排名,看看我面前的一份与我的简历有多接近理想的。
为了解决这个问题,我正在尝试编写一个代码
1) 向用户显示两份简历
2)用户选择哪个更好
3)程序说,“这份简历在排名中总是高于其他”
4) 重复步骤 1-3
5) 最终,每份简历都被排序到大致正确的位置(不一定是100%完美),然后继续审阅。
希望这可以消除系统中的一些偏见,并使简历审查更加公平。我敢肯定这是我们都想要的。
我的问题是我不确定从哪里开始。我可能没有使用正确的搜索词,但每当我寻找“如何使用 python 手动排序”或“选择一个元素并在 python 中排序”时,什么都没有出现。
我现在并不担心界面部分:我只想在后端开始运行,以便稍后添加 UI。
至于我在 Python 方面的背景,我已经掌握了基础知识,我可以学习任何我需要学习的东西(我已经完成了套利编码、硒的东西、抓取和各种生物信息学的东西)。称之为中级编码器的开始阶段。
谢谢你的帮助!
解决方案
我认为您需要该软件具有投票系统,以便它可以计算您选择简历的次数。字典是最好的工具。
假设我在一个文件夹中有 3 份简历。简历标题从 1.pdf 到 3.pdf
1 - 使用os.listdir("PATH/TO/FOLDER/)
这将在列表中列出所有简历的标题。
2 - 将列表转换为字典。字典键将是简历标题,它们的值将在开头为 0。最终,这些值将反映每个简历收到的投票数。
3 - 创建一个嵌套的 for 循环来比较简历。
4 - 每次用户选择一个简历而不是另一个,简历的值将增加 1。
#resumes = os.list(Path/To/Folder)
resumes = ["1.pdf","2.pdf", "3.pdf"]
resumeDictionary = { i : 0 for i in resumes } #Convert list to dictionary and give all keys a value 0
resumeRecord=[] #List to keep a record of resume comparison combinations
for resume in resumes:
for Anotherresume in resumes:
if Anotherresume is resume or [resume,Anotherresume] in resumeRecord or [Anotherresume,resume] in resumeRecord: #Prevent duplicate/repeated resume comparisons
continue
userInput = input("Which resume do you prefer? Press 1 or 2\n[1] " + resume + "\n" + "[2] " + Anotherresume + "\n")
if int(userInput) == 1:
resumeDictionary[resume] += 1
elif int(userInput) == 2:
resumeDictionary[Anotherresume] += 1
resumeRecord.append([resume,Anotherresume]) #Record combination
print(resumeDictionary)
如果我运行上面的代码并选择 resume "1.pdf" 3 次,我最终会得到这样的字典
{'1.pdf': 3, '2.pdf': 1, '3.pdf': 2}
推荐阅读
- python - 在 Python 中从字符串列表创建一个列表
- python - 在 python 中更快地实现 ReLu 导数?
- javascript - Web Push 重新订阅推送管理器 chrome
- laravel-routing - laravel 无法解析数据
- javascript - Javascript 中的第 0 年是什么?
- python - Python-将新值插入“嵌套”列表?
- javascript - 将函数添加到子类也将使用的超类
- php - MYSQL 中的多重移动平均计算 - 在我的代码中面临速度问题
- unity3d - Unity 内存管理:加载的脚本对象中的精灵 --- 内存使用如何扩展?
- node.js - Nodejs 服务器正在运行,并且 localhost 没有在 express 项目上发送任何数据