2014-09-26 105 views
0

基本上我有這個代碼,我需要一個具體的輸出,我說明贏家和他的票數。我似乎已經找到了最大價值的一切,但不是它的關鍵對手。該錯誤是在我的倒數第二個輸出。讓我知道你們的想法,這可能是一個簡單的解決方法,謝謝你!尋找字典中的最大值的關鍵

print() 
print() 
print() 
import sys 
fo = open(sys.argv[1], "r") 
dic = {} 
count = 0 
winner = 0 

print("Candidates".center(15), "Votes".rjust(10), "Percent".rjust(10)) 
print("==========".center(15), "=====".rjust(10), "=======".rjust(10)) 

for line in fo: 
    line = line[:-1] 
    x = line.split(" ") 
    names = (x[0]) + " " + (x[1]) 
    votes = int(x[2]) + int(x[3]) + int(x[4]) + int(x[5]) 
    dic[names] = votes 
    count = votes + count 
    if winner < votes: 
     winner = votes 

for i in dic.keys(): 
    percent = int((dic[i]/count)*100.00) 
    print (i.center(15),str(dic[i]).center(15),str(percent)+"%") 

#Loop through every kid and find percentage, 
print() 
print("The winner is", "" , "with", winner, "votes!") 
print() 
print("Total votes polled:", count) 
print() 
print() 
print() 
+0

既然你只是在尋找贏家,你爲什麼要儲存其他人在一本字典?只要跟蹤獲勝者的名字和他們得到的兩個變量的分數,然後最後只需打印這些。此外,要打印該號碼,請做'str(贏家)' – smac89 2014-09-26 03:37:27

+0

ughhh。好的。這就說得通了。所以, 如果獲勝者<投票: 獲勝者=投票, 是爲投票,但那麼關鍵?或者有沒有辦法只存儲最大值。謝謝 – Cooper 2014-09-26 03:40:42

+0

,我必須循環瀏覽,因爲我需要輸出每個百分比和投票。 瞭解它:如果獲勝者<投票: 獲勝者=投票 who =名稱 – Cooper 2014-09-26 03:53:40

回答

1
import operator 
dic = {'a':1000, 'b':3000, 'c': 100} 
max(dic.items(), key=operator.itemgetter(1))[0]