将字典转换为列表,排序,然后返回制表符

2024-10-02 10:18:21 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我必须以字典作为参数,对键和键相关的值进行排序。我知道我不能对字典进行分类,所以我想把它们放在一个列表中,然后对它们进行排序。但我需要打印的是一个表,它是一个具有适当格式的列表或字符串,它将在新行中打印每个键。代码应该这样做:

>>> 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

那么在打印最终列表或字符串时,如何将表格式化为这样呢。我不知道什么是最好的方法。这是我目前掌握的代码,但显然是错误的:

^{pr2}$

请帮帮我,因为我不知道如何把这本字典变成我可以分类和打印出来的正确格式,使它看起来像一个表格。谢谢你


Tags: 字符串代码列表字典排序格式分类animals
3条回答

你在正确的轨道上。您可以首先使用顶层键上的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

您可以使用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并打印您的表。在

keys = aDict.keys()
values = aDict.values()

这样你就有两个可排序的列表。在

在发布时对它们进行排序:

^{pr2}$

相关问题 更多 >

    热门问题