2016-12-09 3 views
0

私はカナダとベネズエラとトロントと一緒にカラカスを返したい。私は開発中のクイズで自分の質問の一環としてカラカスを使い、その質問に対する秘密の答えとしてベネズエラを使いたい。 コード:同じキーと値のペアを返すことで、Python3プログラムの別のインスタンスでrandom.choice(list())を使うことができますか?

import random 
d = {'Venezuela': 'Caracas', 'Canada': 'Toronto'} 
def random_pair(x): 
    print(random.choice(list(x.keys() and x.values()))) 
random_pair(d) 

戻り値: トロント か: カラカス 私はそれを返すようにしたい: カナダ トロント か: ベネズエラ カラカス 私も

print(random.choice(list(d.keys())) 
print(random.choice(list(d.values())) 

が、それを試してみましたカナダを返還しながらカラカスを返すことができる。

+2

http://stackoverflow.com/questions/4859292/how-to-get-a-random-value-in-python-dictionary – Stidgeon

+1

ランダムキーがあれば、それを使ってディレクトリから直接値を取得します。 – furas

答えて

1

d.keys()d.values()の代わりにd.items()を使用してください。

0

d.keys()およびd.values()は発注されていません。彼らはそれぞれが任意の順序であり、その理由からあなたがそれらのリストから選ぶときに一致しません。

d.items()は、キーとして&の値を組み合わせて使用​​するので、ランダムな要素を安全に選択することができます。

またランダムキーkを選択して、関連付けられた値:dict[k]を検索することもできます。これは値と同じです。

関連する問題