Учитывая вложенный словарь, как это:
dog\_breeds = { 'Labrador Retriever': {'life\_span': 14, 'male\_weight': '36 Kg', 'female\_weight': '32 Kg'}, 'Beagle': {'life\_span': 15, 'male\_weight': '11 Kg', 'female\_weight': '10 Kg'}, 'German Shepherd': {'life\_span': 13, 'male\_weight': '40 Kg', 'female\_weight': '32 Kg'}, 'Jack Russell Terrier': {'life\_span': 16, 'male\_weight': '8 Kg', 'female\_weight': '8 Kg'}, 'Rottweiler': {'life\_span': 10, 'male\_weight': '60 Kg', 'female\_weight': '48 Kg'}}
Вот способ отобразить его контент, отсортированный по ключу:
[print(f'A {key} can live up to {value["life\_span"]} years. A male can weight up to {value["male\_weight"]} and a female up to {value["female\_weight"]}.') for (key, value) in sorted(dog\_breeds.items()) ]
Давайте разберем то, что происходит в вышеуказанном блоке:
print(f'Hello, {name}!')
print (f “) использует форматированные строки , так что вы можете использовать имена переменных в операторе печати. Если бы он напечатал бы «Привет, Марси!». Эта форматированная строка доступна в Python 3.6 и выше. Я использую это все время Потому что это выглядит очень похоже на JavaScript шаблоны литералы (Обратите внимание на спины в JS вместо одиночных кавычек):
Console.log(`Hello, {name}`)
Итак, в примере выше мы используем Ключи и Значения из словаря как переменные.
Далее, для петля:
for (key, value) in sorted(dog\_breeds.items())
Здесь мы сортируем словарь и деконструируем его ключ и значение из .Items () Анкет
Мы также используем Понимание списка (И именно поэтому все охватывается квадратными скобками, а для цикла приходит последний), но этот блок также может быть написан так:
for (key, value) in sorted(dog\_breeds.items()): print(f'A {key} can live up to {value["life\_span"]} years. A male can weight up to {value["male\_weight"]} and a female up to {value["female\_weight"]}.')
Окончательный результат будет выглядеть так:
A Beagle can live up to 15 years. A male can weight up to 11 Kg and a female up to 10 Kg.A German Shepherd can live up to 13 years. A male can weight up to 40 Kg and a female up to 32 Kg.A Jack Russell Terrier can live up to 16 years. A male can weight up to 8 Kg and a female up to 8 Kg.A Labrador Retriever can live up to 14 years. A male can weight up to 36 Kg and a female up to 32 Kg.A Rottweiler can live up to 10 years. A male can weight up to 60 Kg and a female up to 48 Kg.
отсортировано также может принять аргумент «обратный»:
for (key, value) in sorted(dog\_breeds.items(), reverse=True)
который изменит выход:
A Rottweiler can live up to 10 years. A male can weight up to 60 Kg and a female up to 48 Kg.A Labrador Retriever can live up to 14 years. A male can weight up to 36 Kg and a female up to 32 Kg.A Jack Russell Terrier can live up to 16 years. A male can weight up to 8 Kg and a female up to 8 Kg.A German Shepherd can live up to 13 years. A male can weight up to 40 Kg and a female up to 32 Kg.A Beagle can live up to 15 years. A male can weight up to 11 Kg and a female up to 10 Kg.
Пост Отображение вложенного содержимого словаря, сортированного по ключу в Python _ был первоначально опубликован в _ flaviabastos.ca
Оригинал: “https://dev.to/flaviabastos/display-nested-dictionary-content-sorted-by-key-in-python-314l”