相关疑难解决方法(0)

如何在字典python中随机选择多个键及其值

我有一个这样的字典:

user_dict = {
            user1: [(video1, 10),(video2,20),(video3,1)]
            user2: [(video1, 4),(video2,8),(video6,45)]
            ...
            user100: [(video1, 46),(video2,34),(video6,4)]                 
            } 

(video1,10) means (videoid, number of request)
Run Code Online (Sandbox Code Playgroud)

现在我想随机选择10个用户并进行一些计算

 1. calculate number of videoid for each user. 
 2. sum up the number of requests for these 10 random users, etc
Run Code Online (Sandbox Code Playgroud)

然后我需要将随机数分别增加到20,30,40

但是"random.choice"一次只能选择一个值,对吧?如何选择多个键和每个键后面的列表?

python

16
推荐指数
1
解决办法
2万
查看次数

获取字典的随机子集

免责声明:我知道有一个问题叫做

获取 dict 的随机样本

但很明显,我的不是重复的。该问题的答案主要集中在计算字典的随机子集的值的总和,因为这正是 OP 真正想要的。相反,我真的需要提取一个子集。

我有一个非常大的字典,我想提取一个子样本,然后我想对其进行迭代。我试过:

import random
dictionary = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
keys = random.sample(dictionary, 3)
sample = dictionary[keys]
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

Traceback (most recent call last):
  File "[..]/foobar.py", line 4, in <module>
    sample = dictionary[keys]
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

这有效:

import random
dictionary = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
keys = random.sample(dictionary, 3)
sample = {key: dictionary[key] for key in keys}
Run Code Online (Sandbox Code Playgroud)

这似乎有点词性:我希望有一种矢量化的方式来构建新词典。但是,这是正确/最 Pythonic 的方法吗?另外,如果我想迭代这个样本,我应该这样做:

for key, value in sample.iteritems():
    print(key, value)
Run Code Online (Sandbox Code Playgroud)

我的问题不是重复

如何在字典python中随机选择多个键及其值 …

python random dictionary

5
推荐指数
1
解决办法
2644
查看次数

标签 统计

python ×2

dictionary ×1

random ×1