dict中的Python计数器与dict中的列表选择元素的概率
我有一个关于python字典的dict中的Python计数器与dict中的列表选择元素的概率,python,dictionary,Python,Dictionary,我有一个关于python字典的计数器的问题。我使用计数器建立字典(它帮助我建立邻接矩阵) 我在本例中使用namedtuple。存储的值是48-4倍 52双 让我们使用dict中的列表执行此操作: {48: ['48','48','48','48','52','52']} 现在我将从给定的键(48)中选择一个随机值。字典中的列表和带有计数器的字典的概率是多少?最好用字典里的列表来做这个?这有关系吗 我想知道dic的提取和计数器给我{48:{48,48,48,48},{52,52}或者计数器只存储
计数器的问题。我使用计数器建立字典(它帮助我建立邻接矩阵)
我在本例中使用namedtuple
。存储的值是48-4倍
52双
让我们使用dict中的列表执行此操作:
{48: ['48','48','48','48','52','52']}
现在我将从给定的键(48)中选择一个随机值。字典中的列表和带有计数器的字典的概率是多少?最好用字典里的列表来做这个?这有关系吗
我想知道dic的提取和计数器给我{48:{48,48,48,48},{52,52}
或者计数器只存储元素的数量
真正的问题是:
我应该使用哪种方法从键中获取随机值?带列表的口述还是带计数器的口述?是一样的吗
我使用马尔可夫链生成音乐。我有一套笔记,我编了一本字典 这取决于您随机选择元素的方式
如果您正在使用,那么您希望将dict与列表值一起使用。这是因为当你在一个计数器上迭代时,你只在键上迭代,所以随机。选择(一些计数器)
对一些计数器的所有键权重相等
如果您使用的是Python>=3.6,那么可以使用new来选择键,使用它们的值作为权重
from random import choices
from collections import Counter
counts = Counter('Some input iterable')
print(choices(*zip(*counts.items())))
# This gives us a list containing one randomly selected key of counts
# ['e'] for example
# If you want more, you can specify a keyword argument k equal to the number of elements
# you want to select form the population (with replacement)
choices(*zip(*counts.items())
是执行以下操作的较短方法
keys = []
values = []
for key, value in counts.items():
keys.append(key)
values.append(value)
print(choices(keys, values))
我不确定我是否理解这个问题——每个例子中的概率都是相同的。真正的问题是什么?是关于构造dict,还是关于从值中提取一个随机项?我想知道dict中带计数器的元素是如何存储的,我更新了我的问题。random.choices
在计数器的上下文中选择带所有值的键
?我指的是值的总和,例如num of 42 eq 4,因此权重od 42为4@lukassz对更准确地说,选项
可以按顺序接受两个位置参数总体
和权重
。位于总体[i]
的元素具有权重权重[i]
。我们正在处理counts.items()
以便每个键值对在population
和weights
中位于相同的索引。因此weights
的总和必须为1。如何计算此集合的权重
{48:['48','48','48','48','48','52','52']}
(48,52)?选项使用相对权重,因此它们不必求和为一。
keys = []
values = []
for key, value in counts.items():
keys.append(key)
values.append(value)
print(choices(keys, values))