2
私はdictionary
を持っています:キーは文字列です、値は浮動小数点です。ランダム最大キーの場合は、辞書の場合
例:
A = {'a':1, 'b':2, 'c':2, 'd':0}
私は同じ確率で答えとして'b'
または'c'
を取得したいのですが。私は言った行動を得る方法を見つけた。しかし、私はこれがベストプラクティスであるとは確信していません。
import random
A = {'a':1, 'b':2, 'c':2, 'd':0}
all = (A.items())
values = [(x[1],random.random(),x[0]) for x in all]
maxIndex = values.index(max(values))
print(values[maxIndex][2])
より良い(またはより優雅な)アプローチはありますか?
'random.choice(d.keys())'が回答しました[ここ](https://stackoverflow.com/questions/4859292/how-to-get-a-random-value-in-python-dictionary) – Lex
@Lexこれは同じもののようには見えません。それは、まず最大値を見つけて、その値にマップするランダムなキーを選択するようなものです。 – mwchase
@ジェダイ「A」はこの形式です。私はこの場合n = 4としてO(n)について心配していません。私は一般的にはより速いアプローチを見て嬉しいです。 –