1

次の場合:

topic = {'Countries': ['Somalia', 'Bermuda'],
         'Cars'     : ['Tesla', 'Lotus']
}

ランダム化された辞書内のリストからランダムなアイテムにアクセスするにはどうすればよいですか?各リスト内の要素を組み合わせてリストを作成してみましたが、それは私が必要としているものではありません。

4

2 に答える 2

2

で使用random.choice.keys()、次に選択したキーに関連付けられた値でもう一度使用します。

import random

key = random.choice(list(topic.keys()))
value = random.choice(topic[key])

(dictビュー)の結果を.keys()リストに変換して、それらからランダムに選択できるようにする必要があります。

デモ:

>>> import random
>>> topic = {'Countries': ['Somalia', 'Bermuda'],
...          'Cars'     : ['Tesla', 'Lotus']
... }
>>> key = random.choice(list(topic.keys()))
>>> value = random.choice(topic[key])
>>> value
'Tesla'
于 2012-11-03T09:49:14.827 に答える
1

これは、すべてのアイテムで均一にランダムなソリューションです。1000台の車と1つの国がある場合、車をより頻繁に選択します。

import random
# build a list of containing key/value pairs
values = [(k, v) for k, values in topic.items() for v in values]

# pick one of these
key, value = random.choice(values)
于 2012-11-03T09:57:28.377 に答える