Выдает ошибку: AttributeError: 'dict_values' object has no attribute 'sort'

Gvygyt

Новичок
Пользователь
Дек 31, 2020
13
0
1
Python:
country = {'Россия':16000,'США':2457,'Норвегия':5876,'Украина':6789,'Беларусь':2342,'Хорватия':7456}
qwerty = '''  +++ доступные команды +++
       1 - добавление страны в список и ее населения
       2 - изменить население
       3 - вывести список
       4 - отсортировать список
       5 - показать информацию о конкретной стране
       6 - удалить страну и население
       7 - вывести доступные команды
       8 - выход из программы'''
print(qwerty)
while True:
    a = int(input("Введите значение команды: "))
    if a == 1:
        term = input('Введите имя страны: ')
        if term not in country:
            meaning = input('Введите кол-во населения страны: ')
            country[term] = meaning
            print('Страна ' + term + ' добавлена в список')
        else:
            print('Такая страна уже есть!!')
    elif a == 2:
        term = input('Введите страну: ')
        if term in country:
            meaning = input('Введите новое кол-во населения: ')
            country[term]=meaning
            print('Население ', term, ' перезаписано')
        else:
            print('Такая страна уже есть')
    elif a ==3:
        print(country)
    elif a == 4:
        s = country.values()
        s.sort(reverse=True)
    elif a == 7:
        print(qwerty)
    elif a == 8:
        print("\n\nНажмите Enter, чтобы выйти")
Суть программки:
С помощью интернета создай словарь "страна - население" (как минимум 4 страны)

Программа спрашивает у пользователя какую страну добавить, какое у страны население и добавляет значения в словарь, затем выводит список населений стран, отсортированный по убыванию.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 625
469
83
Python:
s = country.values()
s.sort(reverse=True)
это не работает в питоне 3, так как в питоне 3 методы словарей dict.keys(), dict.values() и dict.items() возвращают не список, а view objects (объекты представления, или объекты вида, или объекты просмотра... перевести можно как угодно)...

поэтому в питоне 3 нужно так (это и в питоне 2.5 работает)
Python:
...
    elif a == 4:
        s = sorted(country.values(), reverse=True)
        print(s)
...
 
  • Мне нравится
Реакции: Gvygyt

Форум IT Специалистов