この記事は Python 辞書の操作方法をまとめたもの (例付き) です。一定の参考価値があります。困っている友人は参照してください。お役に立てれば幸いです。
辞書 (dict) 構造は、Python で一般的に使用されるデータ構造です。著者は、私の実際の使用経験に基づいて、辞書に関する関連知識を要約し、読者にインスピレーションを与えることを願っています~
辞書を作成する一般的な方法は、最初に空の辞書を作成し、次にキーと値を 1 つずつ追加することです。たとえば、辞書 person={' を作成します。 name':'Tome', 'age' :22, 'city':'Shanghai, 'ID': '073569'}、次のコードを使用できます:
person = {} person['name'] = 'Tom' person['age'] = 22 person['city'] = 'Shanghai' person['ID'] = '073569' print(person)
出力結果は次のとおりです:
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
この作成方法はシンプルかつ独創的ですが、コードは十分にシンプルかつエレガントではありません。 zip 関数を使用して、この辞書を簡単かつ迅速に作成します。
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print(person)
出力結果は、元のコードと一致します。
実際のアプリケーションでは、辞書のトラバースが必要になることがよくありますが、その実装方法については、次のコードを参照してください:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) for key, value in person.items(): print('Key:%-6s, Value:%s'%(key, value))
出力結果は次のとおりです。 :
Key:name , Value:Tom Key:age , Value:22 Key:city , Value:Shanghai Key:ID , Value:073569
実際のアプリケーションでは、辞書内の特定の値 (値) に対応するキー (キー) を見つける必要がある場合があります。オプションであり、キーと値のペアを交換することも別の選択肢です。キーと値のペアを交換するための実装コードは次のとおりです:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print('对调前:') print(person) Person = {v:k for k,v in person.items()} print('对调后:') print(Person)
出力結果は次のとおりです:
对调前: {'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 对调后: {'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
Python の辞書は順序付けされていません。ハッシュとして保存されるため、順序付けされていません。場合によっては、辞書の項目やキーを順序どおりに保存する必要がある場合がありますが、このときは、順序付き辞書構造である collections
モジュールの OrderedDict
を使用できます。
サンプルコードは以下のとおりです(Pythonのバージョンは3.5.2)
from collections import OrderedDict d = {} d['Tom']='A' d['Jack']='B' d['Leo']='C' d['Alex']='D' print('无序字典(dict):') for k,v in d.items(): print(k,v) d1 = OrderedDict() d1['Tom']='A' d1['Jack']='B' d1['Leo']='C' d1['Alex']='D' print('\n有序字典(OrderedDict):') for k,v in d1.items(): print(k,v)
出力結果は次のとおりです:
无序字典(dict): Leo C Jack B Tom A Alex D 有序字典(OrderedDict): Tom A Jack B Leo C Alex D
collections.defaultdict
は、Python の組み込み dict
クラスのサブクラスです。最初のパラメータは、default_factory 属性の初期値を提供し、デフォルトは None# です##。メソッドをオーバーライドし、書き込み可能なインスタンス変数を追加します。他の関数は
dict と同じですが、存在しないキーにデフォルト値を提供するため、
KeyError 例外が回避されます。
collections.defaultdict の利点を示すために、統計リスト内の単語の出現頻度を例として取り上げます。
通常、統計リストの単語頻度コードは次のとおりです。
words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = {} for word in words: if word not in freq_dict.keys(): freq_dict[word] = 1 else: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
sun 2 moon 2 star 4
collections.defaultdict を使用すると、コードは次のようになります。最適化する:
from collections import defaultdict words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = defaultdict(int) for word in words: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
以上がPython の辞書操作の概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。