-1

本の索引を作成しています。単語とそのページのテキスト ファイルを読み込んで、「索引」という辞書を作成しました。

index={'spanning tree': {16, 99}, 'vertex': {54}, 'depth first search': {55}, 'shortest path': {55}, 'connected': {28, 54}, 'neighbor': {64, 27, 77}, 'path': {72, 19}}

今、キーをアルファベット順に並べ、数字を時系列に並べたいと考えています。これを辞書形式で行うことはできますか、それともリストまたは文字列に変換する必要がありますか?

これをやってみた...

ind=list(index)
ind.sort()
return ind

アルファベット順にキーのリストを取得しましたが、それらがセットになっているため、数字にアプローチする方法がわかりません...

何かアドバイス?

4

2 に答える 2

2

順序付けを適用する場合は、セットもリストに変換する必要があります。

このsorted()関数は、任意の iterable からソートされたリストを提供し、ステップをスキップできるようにします。

for key in sorted(index):
    print('{:<20}{}'.format(key, ', '.join(str(i) for i in sorted(index[key]))))

短いデモ:

>>> sorted(index)
['connected', 'depth first search', 'neighbor', 'path', 'shortest path', 'spanning tree', 'vertex']
>>> sorted(index['connected'])
[28, 54]
>>> for key in sorted(index):
...     print('{:<20}{}'.format(key, ', '.join(str(i) for i in sorted(index[key]))))
... 
connected           28, 54
depth first search  55
neighbor            27, 64, 77
path                19, 72
shortest path       55
spanning tree       16, 99
vertex              54
于 2013-07-24T21:32:52.907 に答える