2016-11-25 7 views
0

辞書を整理させて、今やっているやり方が正しくないと思います。_collectionsや他のライブラリを使わずに辞書を注文する方法は?

dictionary = _collections.OrderedDict(sorted(dictionary.items())) 

ライブラリ "_collections"を使用しているため、インポートされたライブラリなしでこれを行うコンパクトな方法はありますか?

+1

'sorted(dictionary.items())はどうですか? –

+0

それはタプルのペアを作成しますが、私はそれを行うことができます。ありがとう – Grak

答えて

2

いいえありません。ご注文をご希望の場合はOrderedDictをご利用ください。これは、Python <= 3.5のディクティックのようなオブジェクトで順序を保持する唯一の手段です。

Pythonの3.6から、辞書には、デフォルトで挿入の順番を覚えている(参照:Dictionaries are ordered in Python 3.6+を)ので、あなたはそれにソートされたシーケンスを供給し、他のモジュール(例えばOrderedDict)を使用せずに順序を取得することができます。 にもかかわらず、OrderedDictにラップするのが最善です。 dictの注文動作は、ではないに依存する実装の詳細とみなされます。

+0

基本的に、それを行う唯一の厄介な方法は、最初にキーのリストを作ることです...マジック?うん、これはかなり面倒です。 – Grak

+0

@Grakしかし、これが辞書の実装方法です。あなたがリストを注文した順序で、ジョンが示唆したように、それらを保持しない理由を注文する必要がある場合は? –

関連する問題