辞書内の複数のキーとその値をランダムに選択する方法 [重複] 質問する

辞書内の複数のキーとその値をランダムに選択する方法 [重複] 質問する

次のような辞書があります:

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)(ビデオID、リクエスト数)を意味します。

ランダムに10人のユーザーを選択し、次のような計算をしたいとします。

  1. 各ユーザーのビデオIDの数を計算します。
  2. これらの 10 人のランダムなユーザーに対するリクエストの数を合計します。

次に、乱数をそれぞれ 20、30、40 に増やす必要があります。

しかし、random.choice一度に選択できる値は 1 つだけですか? 複数のキーと各キーに続くリストを選択するにはどうすればよいでしょうか?

ベストアンサー1

それがrandom.sample()の用途:

母集団シーケン​​スから選択された一意の要素の k 長さのリストを返します。置換なしのランダム サンプリングに使用されます。

これを使用してキーを選択できます。その後、通常の辞書検索によって値を取得できます。

>>> d = dict.fromkeys(range(100))
>>> keys = random.sample(list(d), 10)
>>> keys
[52, 3, 10, 92, 86, 42, 99, 73, 56, 23]
>>> values = [d[k] for k in keys]

または、 から直接サンプルを取得することもできますd.items()

おすすめ記事