2015-03-23 5 views
-1

Я попытался отсортировать мой массив с высокой до низкой, однако, используя совет с этого сайта, я мог только сортировать его от низкого до высокого и не мог сортировать в алфавитном порядке.Как отсортировать словарь по низким или по алфавиту

Мой код:

x={"luiz":2,"adrian":8,"guv":10,"homer":3,"jane":6} 

y={"gus":3,"gump":7,"harry":7,"elliot":9} 

z={"elizabeth":10,"micheal":2,"david":7} 

sorted_x = sorted(x.items() , key operator.itemgetter(1)) 

sorted_y = sorted(x.items() , key operator.itemgetter(1)) 

sorted_z = sorted(x.items() , key operator.itemgetter(1)) 

моя программа должна вывести имя и значения с наибольшим рангом к низшему, а затем выводить dictionarys по алфавиту

+0

что желаемый результат? –

+0

im довольно уверен, что второй аргумент для всех отсортированных функций является синтаксической ошибкой. @Cyber, но он создает список элементов, которые можно заказать –

+1

@Cyber: но их вывод представляет собой отсортированный список пар ключ-значение. –

ответ

1

Чтобы изменить вид, просто добавьте reverse=True:

sorted(x.items(), key=operator.itemgetter(1), reverse=True) 

Предположительно, вы хотите отсортировать ключи в алфавитном порядке, а не сортировать b y оценка от самого низкого до самого высокого; в этом случае просто опустить ключ:

sorted(x.items()) 

, потому что ключ-Вейл кортежи, полученные dict.items() уже будут отсортированы по ключу первого.

+0

, спасибо, что это сработало – henchness

0

Благодаря это моя программа в настоящее время

import operator 

x={"luiz":2,"adrian":8,"guv":10,"homer":3,"jane":6} 

sorted(x.items(), key=operator.itemgetter(1), reverse=True) 

sorted(x.items()) 
y={"gus":3,"gump":7,"harry":7,"elliot":9} 

sorted(y.items(), key=operator.itemgetter(1), reverse=True) 

sorted(y.items()) 

z={"elizabeth":10,"micheal":2,"david":7} 

sorted(z.items(), key=operator.itemgetter(1), reverse=True) 

sorted(z.items())