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

不言
リリース: 2018-10-11 14:24:56
転載
3092 人が閲覧しました

この記事の内容は、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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!