Python 有不同的选择名字的机会

Python 有不同的选择名字的机会,python,random,Python,Random,我正在为工作编写一个程序,从一个.txt文档中提取两个名称。我已经写了一个程序,将抓取的名字,但我需要改变它,以便我可以给每个名字被选中的概率。这种可能性会随着我的审计而改变。我如何在Python中实现这一点?我附上代码,我已经作出了迄今为止,但我不知道如何使它有不同的概率 import os os.chdir('C:/Users/Lance/Documents/Teams') with open('San_Diego.txt') as taf: data = taf.readline(

我正在为工作编写一个程序,从一个.txt文档中提取两个名称。我已经写了一个程序,将抓取的名字,但我需要改变它,以便我可以给每个名字被选中的概率。这种可能性会随着我的审计而改变。我如何在Python中实现这一点?我附上代码,我已经作出了迄今为止,但我不知道如何使它有不同的概率

import os
os.chdir('C:/Users/Lance/Documents/Teams')
with open('San_Diego.txt') as taf:
    data = taf.readline()
San_Diego = data.strip().split(',')
with open('OCIE.txt') as oaf:
    data = oaf.readline()
OCIE = data.strip().split(',')   
def picker(seq):
    from functools import partial
    from random import choice
    return partial(choice, seq)
team_picker = picker(San_Diego)
print([team_picker() for c in range(2)])
team_picker = picker(OCIE)
print([team_picker() for c in range(2)])

给定两个分别权重为0.25和0.75的名称jackjill,下面是一个使用包选择5个加权随机名称的解决方案:

import numpy

names = ['jack', 'jill']
weights = [0.25, 0.75]
bins = numpy.add.accumulate(weights)
selected_indexes = numpy.digitize(numpy.random.random_sample(5), bins)

print numpy.array(names)[selected_indexes]
执行这三次,我得到以下输出:

['jill' 'jack' 'jill' 'jill' 'jill']
['jack' 'jill' 'jill' 'jack' 'jill']
['jill' 'jill' 'jill' 'jill' 'jill']

这可能是有史以来格式最差的问题。请考虑修改一下…只需添加一些比“随机”多的标记。请指定您使用的语言或开发环境。如果您发布您尝试过的代码(或先尝试过的代码),然后发布您遇到的特定问题或错误,那将是最好的。@AlexGreg Yeah:-)现在需要大量投票才能获得该徽章:-)老鼠,问题已经改变了。现在我的答案不再有效了。哈哈,是的,对不起。我真的没有解释well@southpoleelf为了使您的问题符合SO标准,现在您必须展示您已经尝试过的内容,最好使用一些源代码。