python - 获取字典的随机样本

标签 python dictionary random python-3.4

我正在使用一本大字典,出于某种原因,我还需要处理该字典中的小随机样本。我怎样才能得到这个小样本(例如长度为 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/

相关文章:

python - 将 matplotlib 图保存到内存并放置在 tkinter Canvas 上

javascript - 尝试在 jQuery 中随机化新闻滚动条间隔

java - NextInt 强制关闭

html - 如何使脚本在页面加载时执行?

python - 使用 Python Flask、AngularJS、测试/生产目录和服务请求

python - 抑制单元测试中的补充错误消息

python - 我的 pytest 执行有问题,我安装了 pytest 但它没有显示它的版本,它也不起作用

python:迭代不断变化的字典

c# - 将分层 TreeView 绑定(bind)到字典

excel - 字符串如何存储在 VBA 字典结构中?