我正在使用一本大字典,出于某种原因,我还需要处理该字典中的小随机样本。我怎样才能得到这个小样本(例如长度为 2 的样本)?
这是一个玩具模型:
dy={'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
我需要在 dy 上执行一些涉及所有条目的任务。让我们说,为了简化,我需要将所有值加在一起:
s=0
for key in dy.key:
s=s+dy[key]
现在,我还需要对 dy 的随机样本执行相同的任务;为此,我需要 dy 键的随机样本。我能想到的简单解决方案是
sam=list(dy.keys())[:1]
通过这种方式,我得到了字典中两个随机键的列表。所以,回到可能的任务,我需要在代码中做的唯一改变是:
s=0
for key in sam:
s=s+dy[key]
关键是我不完全理解 dy.keys 是如何构建的,因此我无法预见任何 future 的问题
最佳答案
def sample_from_dict(d, sample=10):
keys = random.sample(list(d), sample)
values = [d[k] for k in keys]
return dict(zip(keys, values))
关于python - 获取字典的随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40001646/