我正在建立一个名单,其中我有几个人与编程技能和他们的现行利率。我现在处于困境,因为我正试图从名单中找到最好的个人大约,根据他们的技能涵盖每一美元。我应该用什么算法来评估孤立的个体?你知道吗
我一直试图让for循环迭代,但它没有移动位置。只看第一个细胞就结束了。你知道吗
jess = (["php", "java"], 200)
clark = (["php", "c++", "go"], 1000)
john = (["lua"], 500)
cindy = (["php", "go", "word"], 240)
candidates = [jess, clark, john, cindy]
project = ["php", "java", "c++", "lua", "go"]
def team_of_best_individuals(project, candidates):
##note that in the list candidates, I tried to divide the number of items in the tuple by the cost, in order to find the skill per dollar
def team_of_best_individuals(project, candidates):
skillList = []
for name in (candidates):
len(name)
for skill in name[0]:
skillList.append(skill)
if len(skillList) == len(name):
num_of_skills=len(skillList)
cost = name[1]
num_skill_per_dollar = num_of_skills/cost
return num_skill_per_dollar, candidates[0:4]
print("skill per dollar="+str(team_of_best_individuals(project, candidates)))
预期(产出)必须是每一美元拥有最多技能的人。返回值必须是列表中人员的位置整数。你知道吗
例如
0 - 4
只需使用
max()
并传递no_of_languages/cost
作为键。如果名称是数据的一部分,而不是变量名,那就更容易了。但如果需要处理索引,可以枚举列表并返回正确的索引:在数据中包含名称并使用类似于
namedtuple
的内容可以极大地提高代码的可读性:根据@Vasus devon提到的内容编辑:
您可以在交集操作符
&
中找到项目的连接和使用python集合的技巧。要找到最佳匹配,只需计算与项目相交的技能,就可以计算计算得出:
结果:
漂亮优雅的回答@Mark Meyer, 我想在这里补充一点,我认为你的问题中遗漏了这一点。它需要寻找作为项目一部分的技能。如果应聘者拥有的任何技能不属于这一部分,就必须打折扣。 我试着写些有用的东西那个。作为他指出,单独使用候选名称而不是变量名称可能是值得的。你知道吗
相关问题 更多 >
编程相关推荐