повернуть словарь в список, сортировать, а затем возвращать таблицу

Итак, я должен взять словарь в качестве параметра и отсортировать ключи и значения, связанные с ключами. Я знаю, что не могу сортировать словари, поэтому я подумал о том, чтобы поместить их в список, а затем отсортировать их. но мне нужно распечатать таблицу, которая представляет собой список или строку с соответствующим форматом, который будет печатать каждый ключ в новой строке. Это то, что должен делать код:

>>> dict1 = {'Animals': ['Anteaters', 'Bulls', 'Mountain Lion', 'Camel', 'Polar Bear', 'Kangaroo'], 'Amphibians': ['Frog', 'Toads', 'Salamanders'], 'Insects': ['Butterflies', 'Ants', 'Beetles', 'Bee', 'Centipede']} >>> animals(dict1) Amphibians  Frog  Salamanders  Toads Animals  Anteaters  Bulls  Camel  Kangaroo  Mountain Lion  Polar Bear Insects  Ants  Bee  Beetles  Butterflies  Centipede 

Итак, как я могу отформатировать таблицу, чтобы выглядеть так, когда вы печатаете окончательный список или строку. Я не знаю, как лучше всего это сделать. Это код, который у меня есть до сих пор, но ясно, что это неправильно:

 def animals(aDict): animalslist=[] for keys,values in aDict.items(): animalslist.append(keys) animalslist. append.(values) keys.sort() values.sort() myTable=' ' for each in animalslist: value=aDict[each] myTable = myTable + '\n' +each + ' ' +str(aDict[each]) return myTable 

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

Ты на правильном пути. Вы можете сначала использовать sorted на клавишах верхнего уровня для печати в порядке королевства (я думаю, что я забыл свои таксономические термины). Затем в каждом из них сортируйте внутренний список и распечатайте его с помощью дополнительного пространства.

 def animals(d): for key in sorted(d.keys()): print(key) for animal in sorted(d[key]): print(' ' + animal) >>> animals(dict1) Amphibians Frog Salamanders Toads Animals Anteaters Bulls Camel Kangaroo Mountain Lion Polar Bear Insects Ants Bee Beetles Butterflies Centipede 
 keys = aDict.keys() values = aDict.values() 

Таким образом, у вас есть 2 сортируемых списка.

Чтобы отсортировать их, как вы публикуете:

 list.sort() 

Вы можете использовать OrderedDict:

 >>> # regular unsorted dictionary >>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2} >>> # dictionary sorted by key >>> OrderedDict(sorted(d.items(), key=lambda t: t[0])) OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]) 

После этого вы можете перейти к OrderedDict и распечатать таблицу.