根据Python

时间:2017-11-05 10:59:56

标签: python numpy random

有没有办法根据职位生成随机数(工资)。例如,应用基于职位的权重。目前我正在做以下

import numpy as np 
from random import randint

job_titles = ['developer','business manager','staff','senior developer']
title = np.random.choice(office_titles, 1, p=[0.4, 0.1, 0.4, 0.1])[0]
if title == 'developer': salary = randint(40000,55000)
elif title == 'business manager': salary = randint(70000,85000)
elif title == 'staff': salary = randint(25000,45000)
else: salary = randint(55000,75000)

在我的情况下,我有近30个职称,这不是解决这个问题的好方法。有人可以指导我这样做的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

这是一种有效的方法。此解决方案遵循jonrsharpe的提示,并考虑了COLDSPEED的评论(请参阅评论)。

myString.split("").sort();

由于您有近30个职称,现在您只需填写import numpy as np jobs = { # 'title': (p, min salary, max salary) 'developer': (0.4, 40000, 55000), 'business manager': (0.1, 70000, 85000), 'staff': (0.4, 25000, 45000), 'senior developer': (0.1, 55000, 75000), } titles = [title for title in jobs.keys()] p = [job[0] for job in jobs.values()] title = np.random.choice(titles, size=1, p=p)[0] min_salary = jobs[title][1] max_salary = jobs[title][2] salary = np.random.randint(min_salary, max_salary) 字典。这可能是解决问题的更好方法。

如果你真的想根据职位申请权重,那么只需用k $而不是$来定义工资。像这样:

jobs

我希望这会对你有所帮助。