繁体   English   中英

从列表中选择一个概率的字符串

Select a string from list with a probability

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试图创建一个函数,它以给定的概率返回一个随机单词字符(字母)。 我的参考是这个维基百科页面。 在表格中,您可以看到字母 t 有 16% 的机会成为第一个字母。 但是,字母 x 的几率为 0.045%。 我想包括每个字母。

我确信有比这样做更好的方法:

import random

def selectLetter():
    letters = ['t', 't', (x16000 times), 'o', (x7600 times),... , 'x', (x45 times)]
    random.choice(letters)

加分点:如果代码能够接受一组/列表(或其他)字母并排除它们并相应地调整概率。 这不是必需的,但会很棒!

我如何创建这样的功能?

2 个回复

查看加权列表:

from numpy.random import choice

elements = [1, 2, 3] 
weights = [0.2, 0.1, 0.7]

one = 0
two = 0
three = 0
for i in range(1000):
    num = choice(elements, p=weights)
    if num==1:
        one+=1
    elif num==2:
        two+=1
    else:
        three+=1

print(one,two,three, one/1000, two/1000, three/1000)

输出:

217 108 675 0.217 0.108 0.675

如果有更多循环,您最终可能会得到权重设置的确切概率。 当然用你的字母和权重替换列表,概率在 0-1 范围内,总和必须是 1 (100%)

您还可以将大小提供给选择,创建具有给定概率的所需随机值大小的列表:

res = choice(elements, p=weights, size=1000)
print(list(res).count(1)) #199 first time, next time 178

此函数返回一个随机字母,根据维基百科页面上的前几个条目加权。 您需要完成字母字典(以便概率加起来为 1)才能使其完全发挥作用。

import random
def random_weighted_letter():
    letters = {"a": 0.017,"b": 0.044,"c": 0.052,"d": 0.032,"e": 0.028,"f": 0.04}
    return random.choices(population=list(letters.keys()), weights=letters.values())[0]
1 如何从列表中选择随机字符串

我正在尝试创建一个程序,以刺激从卡组中拾取卡片。 我尝试使用Random类来选择suit和rank但我无法使其正常工作。 到目前为止,这是我的代码。 我敢肯定这很简单,但是我对Java来说还比较陌生,因此可以提供任何帮助! ...

3 在字符串列表中选择一个字符串

在这里,我有一个site1中的字符串列表。 我需要检查site1和items1之间的公用项目,然后从items1中选择匹配的项目。 这是我的代码 有什么建议吗? 编辑:在这里我选择两个项目时出现错误 ...

2016-01-09 06:45:08 2 2626   c#/ linq
5 从字符串列表中选择一个字符串

我有一个字符串列表[abc1, abc2, abc3, xyz3, xyz4] 在数字前面具有相同字符串的元素中,我只需要在输出列表中保留具有最高数字的字符串。 所以在abc1 、 abc2和abc3 ,应该选择字符串abc3 。 在xyz3和xyz4 ,应保留xyz4 。 所以最终列表应该包含 ...

7 如何从列表中选择一个随机字符并加倍并以成对的字符串输出

我是Java的新手,我的家庭作业的一部分要求我产生一个随机的字符串,该字符串包含16对笔记和持续时间。 我查看了一些示例,并尝试筛选了班上提供的材料,但是我发现的结果不是针对另一种编程语言,就是只选择了列表中的一个随机项。 我将注释和持续时间定义为: static char ...

8 如何从索引列表中选择嵌套列表中的字符串

我有一个字符串列表(在数据框内)。 我还有一个列表(与数据框中的列表大小相同),其中数字对应于索引。 我想在第一个列表中提取与第二个列表中的整数对应的元素。 这是我的综合生成数据 索引列表: 如何提取myIndexes列表对应的句子? ...

2019-03-17 19:11:13 1 51   r
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM