sorted関数は、シーケンス(文字列、タプルまたはリスト)やその他の反復可能なオブジェクト (iterable) を引数に取り、その要素を並べ替えた新たなリストを返します[^1]。
辞書も反復可能なオブジェクトですが、反復されるのはキーと値の組ではなく、キーです。
そのためsorted関数に辞書を渡すと、キーがソートされリストとなって返されます。
python
1>>> d = {2:"two", 0:"zero", 3:"three", 1:"one"}
2>>> for k in d:
3... print(k)
4...
52
60
73
81
9>>> sorted(d)
10[0, 1, 2, 3]
sorted関数のkeyに関数を指定すると、まず反復可能なオブジェクトの各要素がその関数に渡され、それぞれ返り値を得ます。すべての要素について返り値が出揃うと、この値を使って比較が行われ、ソートが行われます。ソートの結果は、関数に渡す前の要素を並べ替えたリストとして返されます。
python
1>>> for k in d:
2... print(d.get(k))
3...
4two
5zero
6three
7one
8>>> sorted([d.get(k) for k in d])
9['one', 'three', 'two', 'zero']
10>>> sorted(d, key=d.get)
11[1, 3, 2, 0]
参考:Python HOWTO » ソート HOW TO » Key 関数
[1] https://docs.python.org/ja/3.9/library/functions.html#sorted
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。