Bastax13
@Bastax13

Как сортировать словарь Python 2.7?

Есть словарь -
users = {
	"girafenok": {"password": "2341", "upload_files": 0, "files_size": 0},
	"bastax": {"password": "qwerty123", "files": 2, "files_size": "45 B"},
	"kuku": {"password": "kuku1332", "files": 0, "files_size": "12 GB"},
}

При выводе его на страницу получается вот это -
{"kuku": {"files": 0, "files_size": "12 GB", "password": "kuku1332"},
"girafenok": {"files_size": 0, "password": "2341", "upload_files": 0},
"bastax": {"files": 2, "files_size": "45 B", "password": "qwerty123"}}


Как отсортировать его так, чтобы при выводе на страницу текст отображался в таком порядке, в котором его ввели?
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
@encyclopedist
Словарь в питоне - неупорядоченная структура данных. Он не помнит порядка. Поэтому чделать то что вам хочется с помощью стандартного словаря невозможно.

Но для этого в стандартной библиотеке предусмотрен специальный словарь OrderedDict (в модуле collections)

Чтобы создать OrderedDict с элементами в определенном порядке, нужно передать список пар:

users = OrderedDict([
    ("girafenok", {"password": "2341", "upload_files": 0, "files_size": 0}),
    ("bastax", {"password": "qwerty123", "files": 2, "files_size": "45 B"}),
    ("kuku", {"password": "kuku1332", "files": 0, "files_size": "12 GB"}),
])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
с обычным словарём никак, используйте OrderedDict
Ответ написан
Комментировать
@Alex_4x4
Любитель
Словарь - это неупорядоченная последовательность, значение выводится по ключу. Отсутствует порядковый номер у пар ключ-значение.
Сортировать можно только по возрастанию или убыванию ключа или значения. Но я начинающий питоновед, поэтому могу заблуждаться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы