2015-05-25 10 views
1

Я видел пару подобных вопросов, но я никогда не получить ответы на эти вопросы, как импортировать OrderedDict, или этоСортировка значений в словаре Python 3 - Рекорды

genexp = ((name, dictScore[name]) for name in sorted(dictScore, key=dictScore.get, reverse=True)) 
     for k, v in genexp: 
      print(k, v) 

Так

Делаю игра в мелочи, в которой записаны десятки игроков, и я хочу сохранить их в файле в порядке убывания. Поэтому, когда я распечатать их, то Рекорды показать топ 1 п

Вот мой код

scoreReader = open("highscore.csv","r") 
for line in scoreReader: 
    line = line[0:-1] 
    name, score = line.split(",") 
    dictScore[Snumber] = {name: score} 
    Snumber = Snumber+1 

print(dictScore) 
sorted_dict = sorted(dictScore.items(), key=operator.itemgetter(1)) 
print(sorted_dict) 
scoreReader.close() 

это не сортирует значения так ИДК, что делать. HALP

+1

Строка 'line = line [0: -1]' ничего не делает, чтобы вы знали. Это просто устанавливает 'line' равным себе. – IanAuld

ответ

3

Если:

d = {'Ian': 10, 'Dan': 8, 'Joe': 15} 

затем

>>> sorted(d.items(), reverse=True, key=lambda x: x[1]) 
[('Joe', 15), ('Ian', 10), ('Dan', 8)] 

Я не уверен, что operator в вашем коде, но это будет достичь того, чего вы хотите. Вы можете узнать больше о них key параметр и сортировка here

Смежные вопросы