1.以下の方法の辞書の定義:
=辞書(= 1 1 = 2 2 = 3 3 ) B = { ' 1 ':1、' 2 ':2、' 3 ':3 } C =辞書(ZIP([ ' 1 '、' 2 '、' 3 ' ]、[1,2,3 ])) D =辞書([(' 2 '、2)、(' 1 '、1)、(' 3 '、3 )]) E =辞書({ ' 3 ':3、' 1 ':1、' 2 ':2})
定義が完全に同等である4つの方法は、一つのことは、標準ライブラリのすべてのマッピングタイプが辞書(dictの)によって実装されていることを心に留めておくだけで、辞書のキーに(ハッシュ可能)タイプをハッシュ化することができます。
缶ハッシュデータ型:短いデータはハッシュデータ型であれば、その後、ライフサイクルのこの画像では、その値は変更されません。一般に、データ型は不変ハッシュデータ型で、ユーザ定義データ型はまた、ハッシュ値ID()戻り値であるハッシュ・データ・タイプです。
2.導出辞書:
上述した実施形態に加えて辞書を作成するように構成することができ、辞書はまたによって導出に使用することができます。
DIAL_CODES = [(86、' 中国' )、 ( 91、' インド' )、 ( 1、' 米国' )、 ( 62、' インドネシア' )、 ( 81、' 日本' )] COUNTRY_CODE = {国:コードのためのコード、国における DIAL_CODES} #辞書定義由来 プリント(COUNTRY_CODE)
以下は、派生Pythonの方法の一般的なタイプをまとめたものです。
1)リスト由来:[式の項目について反復可能で】
number_list = [NUM ため NUM に範囲(1,4)] #由来リスティング プリント(number_list) #[1、2、。3]
導出の2)集合:{反復可能でexpersionためexpersion}
= {a_setの数のための数に範囲(1,6)IF番号%2 == 0} #1 の後方にの分析方法の全て導出に添加することができるリストが由来、 印刷(a_setの)#{2 ,. 4}
3)発電式:「[]」は「)(」置き換えることを除いて、類似のリストを導出し、
色= [ ' ブラック'、' 白' ] サイズ = [ ' S '、' M '、' L ' ] のための Tシャツに(' %S%S '%を(C、S)のための C における色のための S に:サイズ) 印刷(Tシャツ) #ブラックS #ブラックMの #ブラックL #白Sの #白Mの #白L
3.辞書引き:D = { '':1、 'B':2}
検索時には、対応するキーで見つからない場合は、// d.get(K、デフォルト)による直接呼び出しD [..]エラーが対応するキーを見つけることができませんとき、方法を見つけるために、場合、デフォルト値のデフォルトに戻ります。
もちろん、のような他の方法があります:
代わりに、タイプによって定義された通常タイプの辞書のdefaultdict、またはタイプの辞書からの継承、そして、この種の__missing__方法を実装することをカスタムクラスの。
インポートコレクション DIAL_CODES = [(86、' 中国' )、 ( 91、' インド' )、 ( 1、' 米国' )、 ( 62、' インドネシア' )、 ( 81、' 日本' )] D = collections.defaultdict(リスト、DIAL_CODES) #キーが辞書に存在しない場合と、クエリが返す指定されたタイプのリスト 印刷(D [86]) #中国 プリント(D [ ' C ' ]) #[]
クラス:StrKeyDict0(辞書) DEF __missing__(セルフ、キー): #のカスタムタイプ、処理鍵が見つからない場合、処理モード 復帰 「キー:」 +キー+ 「見つかりません」 DIAL_CODES = [(86、' 中国' )、 ( 91、' インド' )、 ( 1、' 米国' )、 ( 62、' インドネシア' )、 ( 81、' 日本' )] D = StrKeyDict0(DIAL_CODES) 印刷(D [ ' 62 ' ]) #のボタン:62キーは辞書int型であるため、見つかりません
__missingで次の一見__():
対応するキーですべてのマップは、この方法が唯一__getitem__(D [K])に呼び出される前記方法を含むことが見出されることはありません。
4.バリアント辞書
4.1 collections.OrderedDict:
あなたが追加すると、キーの繰り返し順序が同じであるように、このタイプは、キーの順序のままになります。属性は、先進のうち、またはFIFOの後、最後、(キー、値)を削除して返し、(最後= true)をpopitem = Trueのがあります。
インポートコレクション TRU = [(' '、1)、(' B '、2)、(' C '、3)、(' D '、4 )] D = collections.OrderedDict(TRU) d.move_to_end(' B '、最終= False)が #デフォルトのキーは、終わり(最後の=真)に最後の=移動し 、虚偽の先頭に 印刷(' ' .join(d.keys())) #1 、B 、C、Dの印刷(d.popitem(ラスト=偽)) #デフォルトの辞書最終(ラスト= true)を返します( 'D '、4)、最後に= Falseの復帰第一
4.2 collections.ChainMap:
これは、マップの異なるタイプのオブジェクトの数を収容することができ、そして全てのキーが発見されるまで、キーのルックアップ中に、これらのオブジェクトは、一つ一つを見つけるために、全体として扱われます。
共通の属性:
マップ:マップリストを更新することができます。このリストは、一次最後の検索組織内で検索されます。それは修正することができる、唯一の記憶状態です。これは、最小のマッピングのリストが含まれています。
new_child(M =なし):、現在のインスタンスのすべてをマッピングすることで、その後、新しいクラスChainMapを返しメートルが指定されている場合、それは別の新しいインスタンスが指定されていない場合は、すべてのマッピングが前メートル追加することであるとなり、プラス空の辞書。
両親:ChainMapプロパティは、現在のインスタンスを含む新しいマップを返します。
インポートコレクション ベースライン = { ' 音楽':' バッハ'、' 技術':' レンブラント' } 調整 = { 「アート」:「ゴッホ」、「オペラ」:「カルメン」} 印刷(一覧(collections.ChainMap(ベースライン、調整))) #は、最後の検索からすべての辞書のキーを返し D = コレクション。 ChainMap(ベースライン、調整) プリント(d.parents) #の戻りChainMapすべての辞書の最初の外側に加えて プリント(d.maps [1])#1 戻る辞書調整 印刷(d.new_child()) #ChainMap({} 、{ '音楽': 'バッハ '、 '技術': 'レンブラントを'}、{ '技術': 'ヴァン・ゴッホ'、 'オペラ': 'カルメン「})
4.3 collections.Counter:
これは、カウント缶ハッシュオブジェクトの辞書のカウンターのサブクラスです。それは同じに保存されている、このような辞書のキー(キー)などの要素の集合であり、彼らはカウント値として格納されています。カウントがゼロと負を含む任意の整数値であってもよいです。
dictの方法に加えて、以下の他の方法があります。
要素()戻り値:反復子は、各要素のカウント値は、要素の数が1未満である、又は0を無視している場合の要素の出現の指定された数は、順番に返される繰り返されます。most_common(n)は素子と、レベルによってソートされ、最も一般的な発生Nを含むリストを返します。
インポートコレクション D = collections.Counter(= 4、C = 2、B = 3、D = 0、E = -2 ) 用のn におけるd.elements(): プリント(N) #aaaaccbbb D1 = collections.Counter(' アブラカダブラ').most_common(3 ) プリント(D1) #[('」、5)、( 'B'、2)、(R ''、2)]
5.コレクション(ヘルプファイルを参照してください)
オブジェクトセットはオブジェクトその乱数ユニークなハッシュ可能で設定されています。
一般的な用途は、メンバーが重複の配列、及び数学的計算のコレクション、例えば交差点、組合、差対称差などから除去される検出を含みます。
---変数タイプが追加()および削除()変更するには、この方法を使用することができる内容に設定されています。それは、可変型であるため、ハッシュ値、又はセットの他の重要な要素ではなく、辞書として使用することができません。それは辞書のセットのキーまたは他の要素として使用することができるように、frozensetのタイプは、それが作成された後、その内容を変更できない---不変であり、ハッシュ可能。
数学的な操作のセットは、これらの方法や、新しいセットを生成し、またはその場での条件が許すでコレクションを変更します。