マッピング タイプは、反復可能なキーと値のデータ項目の組み合わせであり、データ項目とそのキーと値にアクセスするためのメソッドを提供します。python3 では、2 つの順序なしマッピング タイプ (組み込み dict と Collections.defaultdict タイプ) がサポートされています。標準ライブラリ。
Python3.1 以降、順序付きマッピング タイプも導入されました: collections.OrderedDict.
関連する推奨事項: 「Python ビデオ 」
機能:
1. マップ タイプのキーにはハッシュ可能なオブジェクトのみを使用できるため、組み込みの固定データ タイプはすべてキーとして使用できますマッピング型 (すべての組み込み固定型はハッシュ化可能) 現在公開されている固定データ型は次のとおりです: int、float、complex、bool、str、tuple、frozenset;
2. それぞれに関連付けられた値key には任意のオブジェクトを指定できます;
3. マッピング タイプも反復可能 (反復可能) です。
4. マッピング タイプは、比較演算子、メンバーシップ演算子 in/not in、および組み込みの len() 関数を使用して比較できます。
1.dict (辞書)
dict データ型は、0 ~ n のキーと値を含む、順序付けされていない変数の組み合わせデータ型です。ペアの場合、キーはハッシュ可能なオブジェクトへの参照であり、値は任意のオブジェクトへの参照を指すことができます。キーはハッシュ可能なオブジェクト参照であるため、キーの一意性が保証されます。辞書は可変であるため、データ項目を辞書に追加したり辞書から削除したりできます。辞書は順序付けされていないため、インデックスがなく、操作することもできません。シャーディング オペレーターを使用します。
辞書の作成
1.dict() は関数として呼び出すことができ、この時点で空の辞書が作成されます:
>>> dict() {} >>>
dict() マッピング型パラメータが渡されると、次のようなパラメータに基づく辞書が返されます。
>>> d1 = {"key1":"value1","key2":"value2"} >>> dict(d1) {'key1': 'value1', 'key2': 'value2'} >>>
dict() はシーケンス型パラメータも受け入れることができますが、シーケンス自体は 2 つのオブジェクトを含むシーケンスであり、1 つ目はキーとして使用され、2 つ目は値として使用されます。例:
>>> d1 = dict((("k1","v1"),("k2","v2"))) #使用元组创建 >>> d1 {'k1': 'v1', 'k2': 'v2'} >>> >>> d1 = dict([("k1","v1"),("k2","v2")]) #使用序列创建 >>> d1 {'k1': 'v1', 'k2': 'v2'} >>>
dict() はキーワード パラメータを使用して作成することもできます。はキーワードとして使用され、値はキーワードの値として使用されます。例:
>>> dict(id=1,name="zhangsan",age=23) {'id': 1, 'name': 'zhangsan', 'age': 23} >>>
注: キーワードは有効な Python 識別子である必要があります
2。辞書を作成するには中かっこを使用します。 empty {} は空の dict を作成します。空ではない dict は複数の項目で構成され、各項目はカンマで区切られ、各項目は K:V の形式で作成されます。例:
>>> dict2 = {"name":"kobe","age":33,"num":24} >>> dict2 {'name': 'kobe', 'age': 33, 'num': 24} >>>
3辞書のコノテーションを使用して辞書を作成します
defaultdict は dict のサブクラスで、dict のすべての操作とメソッドをサポートします。 dict との違いは、dict[x] で値を取得するときに dict に特定のキーが含まれていない場合は KeyError 例外が発生しますが、defaultdict の場合はそのキーをキーとして新しい項目が作成され、値をデフォルト値として使用します。
2.collections.defaultdict (デフォルトの辞書)
コレクションの作成.defaultdict
作成collections.defaultdict、collections.defaultdict() を介して、パラメータに従って作成するには 2 つの方法があります:
* 1. パラメータの型を使用して作成します:
>>> import collections >>> cd1 = collections.defaultdict(int) >>> cd2 = collections.defaultdict(list) >>> cd3 = collections.defaultdict(str) >>> cd1["x"] 0 >>> cd2["x"] [] >>> cd3["x"] '' >>>
Here, int, list 、str、デフォルト値は 0、[]、"
* 2. 関数名を使用して作成します:
>>> def name(): return 'zhangsan' >>> cd4 = collections.defaultdict(name) >>> cd4["x"] 'zhangsan' >>>
このようにして、関数のデフォルト値を作成できます。
collections.defaultdict() はパラメータなしまたは None を渡すことができますが、その場合、次のようなデフォルト値はサポートされないことに注意してください:
>>> cd5 = collections.defaultdict() >>> cd5["x"] Traceback (most recent call last): File "<pyshell#254>", line 1, in <module> cd5["x"] KeyError: 'x' >>>
はい、collections.defaultdict は、dict.
3.collections.OrderedDict #OrderedDict の get(k,v) メソッドと setdefault() メソッドを置き換えることができますすべての dict メソッドをサポートする dict サブクラスであり、キーが挿入された順序を記憶します。新しいエントリが既存のエントリを上書きする場合、元の挿入位置は変更されません。エントリを削除して再挿入すると、エントリは最後に移動します。
class collections.OrderedDict([items])
これらは順序付けされているため、2 つの OrderedDict は順序が同じ場合にのみ同じになります。ただし、OrderedDict と通常の dict を比較する場合、順序は無視されます。 results
from collections import OrderedDict d = {'banana': 3, 'apple': 4} od1 = OrderedDict({'banana': 3, 'apple': 4}) od2 = OrderedDict({'apple': 4, 'banana': 3}) print(od1 == od2) print(od1 == d)
3. キー メソッド
FalseTrue通常の dict のこのメソッドはパラメータを受け入れず、最後のエントリのみを削除できます; OrderedDict は dict よりも柔軟で、最後のパラメータを受け入れます。 last=Trueの場合は通常の方法と同じでLIFO順序に従い、last=Falseの場合はFIFO順序に従い最初の要素を削除します。 4. 単純な機能強化OrderedDict は挿入順序を維持するだけです。エントリが変更されても、順序は変更されません。
OrderedDict.popitem(last=True)実行結果
from collections import OrderedDict od1 = OrderedDict({'banana': 3, 'apple': 4}) od1.popitem(False) print(od1)しかし、場合によっては、同じ要素を変更して挿入する必要がある この効果は、最初に要素を削除し、変更時に要素を挿入するように __setitem__() メソッドを書き直すことで簡単に強化できます。 ##りー
以上がPython マッピング タイプの関連紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。