次のような辞書があります:
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人のユーザーを選択し、次のような計算をしたいとします。
- 各ユーザーのビデオIDの数を計算します。
- これらの 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()
。