2016-08-13 15 views
0

私はPythonの初心者です。私は競技者の名前とその得点が辞書に格納されるコードを書いています。辞書をresultsと呼びましょう。しかし、私はコードを書いている間、それを空のままにしました。キーと値は、プログラムの実行中に辞書に追加されます。未知のキーと辞書の値を比較するには?

results={}  
name=raw_input() 
    #some lines of code to get the score# 
results[name]=score 
    #code# 
name=raw_input() 
    #some lines of code to get the score# 
results[name]=score 

プログラムの実行後、私たちは私がジョンとマックスのスコアを比較したいresults == {"john":22, "max":20}

としましょう、と勝者のようにスコアが最も高い者を宣言します。しかし、私はプログラムの初めに出場者の名前を知ることはできません。だから私はどのようにスコアを比較し、勝者としてそれらの1つを宣言することができます。

+0

names = []; results.iterkeys()内のname:names.append(name) – Ananth

+0

辞書に最大得点が必要ですか? – Arman

+1

参照http://stackoverflow.com/questions/268272/getting-key-with-maximum-value-in-dictionary – Seba

答えて

1

ここでは、基本的に辞書から最大のアイテムを取得している、あなたが望むものを達成するための実例があります。

import random 
import operator 

results = {} 

names = ["Abigail", "Douglas", "Henry", "John", "Quincy", "Samuel", 
     "Scott", "Jane", "Joseph", "Theodor", "Alfred", "Aeschylus"] 

random.seed(1) 
for name in names: 
    results[name] = 18 + int(random.random() * 60) 

sorted_results = sorted(results.items(), key=operator.itemgetter(1)) 

print "This is your input", results 
print "This is your sorted input", sorted_results 
print "The oldest guy is", sorted_results[-1] 
print "The youngest guy is", sorted_results[0] 
2

あなただけの勝者を取得し、これを行うことができます:

を例に、あなたはまた、代わりに手動で挿入し、最小値を取得し、決定論的ランダムな値を生成するような他の宝石は、ここにあなたが行く参照してくださいよ
max(results, key=results.get) 
あなたが行うことができます
0

import operator 
stats = {'john':22, 'max':20} 
maxKey = max(stats.items(), key=operator.itemgetter(1))[0] 
print(maxKey,stats[maxKey]) 

あなたはまた、全体として最大のタプルをこのように得ることができます。

maxTuple = max(stats.items(), key=lambda x: x[1]) 

希望すると助かります!

関連する問題