ホームページ  >  記事  >  バックエンド開発  >  Python で辞書を整理する方法 (コード)

Python で辞書を整理する方法 (コード)

不言
不言転載
2018-10-11 14:24:563093ブラウズ

この記事の内容は、Python が辞書をどのように整理するか (コード) について述べたもので、一定の参考価値があり、困っている友人が参照できるようになっています。

1. 要件

ディクショナリを作成すると同時に、ディクショナリを反復またはシリアル化するときに、ディクショナリ内の要素の順序も制御できるようにしたいと考えています。

2. 解決策

辞書内の要素の順序を制御するには、コレクション モジュールの OrderedDict クラスを使用できます。ディクショナリを反復処理する場合、要素が最初に追加された順序で厳密に実行されます。

from collections import OrderedDict
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
#根据插入删除输出
for key in d:
print(key,d[key])

結果:

a 1
b 2
c 3
d 4

OrderedDict は、後でシリアル化または別の形式にエンコードできるマッピング構造を構築する場合に特に便利です。例: JSON をエンコードするときに各フィールドの順序を正確に制御したい場合は、最初に OrderedDict でデータを構築するだけです:

from collections import OrderedDict
import json

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
j=json.dumps(d)
print(j)

結果:

{"a": 1, "b": 2, "c": 3, "d": 4}
OrderedDict は内部的に二重リンクのリストを維持します。これにより、要素が追加された順序に従ってキーの位置が配置されます。最初に新しく追加された要素はリンク リストの最後に配置され、その後、キーの位置を変更せずに既存のキーが再割り当てされます。

注意: OrderedDict のサイズは通常の辞書の 2 倍です。これは、追加のリンク リストが作成されるためです。したがって、多数の OrderedDict インスタンスを含むデータ構造を構築する予定がある場合 (たとえば、CSV ファイルから OrderedDict リストに 100,000 行を読み取る場合)、アプリケーションの要件分析を実行して利点を判断する必要があります。 OrderedDict を使用する場合の追加のメモリ オーバーヘッドの欠点は克服できますか?

以上がPython で辞書を整理する方法 (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。