Python学習:辞書(dictionary)
3143 ワード
dictionaryはpython内蔵データ構造の中で最も柔軟です.リストリストリストは秩序化されたオブジェクトの集合であり、dictionaryは無秩序な集合である.最も主要な違いは、辞書の要素がオフセットアクセスではなくキーによってアクセスされることです.
可変長、異機種、任意のネスト.辞書は元の場所で変更できますが、文字列やリストでのシーケンス操作はサポートされていません.辞書は無秩序な集合であるため,一定の順序で操作することはできない.
1、dictionaryの構造:
以上のいくつかの構造方法のほかに、keyとvalue対応技術があります.
リストとは異なり、dictionaryはkeyでインデックス演算を行います.
次の3つの一般的な操作はlistオブジェクトを返します.
以上がpython 2であることに注目すべきである.7の文法、Python 3.0でリスト呼び出しに配置する必要がありますpython 3.0のkeys()は反復器を返します.
マージ操作は次のとおりです.
上記の操作から、マージ中に同じkeyのアイテムがマージされ、keyが同じでvalueが異なる場合に更新されることがわかります.
削除操作には2つの方法があります.pop()このキーに対応する値を削除します.存在しないキーを削除すると、エラーが表示されます.
その他の辞書方法:
存在しないキーを読み込むとエラーが発生することが多く、getメソッドでエラーを回避し、Noneのみを返すことができます.
辞書の大きさの比較はPython 3.0では有効ではありません:
練習問題:
1、2つの方法で5つの0を含むリストを作成する
2、2つの方法で辞書を作成し、2つのキー'a','b'があり、各キーに関連する値は0である.
3、辞書オブジェクトを元の場所で修正する演算を4つ挙げる
転載先:https://blog.51cto.com/12877417/1921254
可変長、異機種、任意のネスト.辞書は元の場所で変更できますが、文字列やリストでのシーケンス操作はサポートされていません.辞書は無秩序な集合であるため,一定の順序で操作することはできない.
1、dictionaryの構造:
D={} #
D = {'spam':2, 'ham':1, 'eggs':3} #
D = {'food':{'spam':2, 'ham':1, 'eggs':3} #
D = dict.fromkeys(['a','b']) # {'a': None, 'b': None}
D = dict(name='Bob', age=42) #{'age': 20, 'name': 'Bob'}
以上のいくつかの構造方法のほかに、keyとvalue対応技術があります.
>>>keyslist=['spam', 'ham', 'eggs']
>>>valslist=[2,1,3]
>>>D=dict(zip(keyslist, valslist))
{'eggs': 3, 'ham': 1, 'spam': 2}
リストとは異なり、dictionaryはkeyでインデックス演算を行います.
>>>D['eggs']
>>>D['food']['ham']
>>>'eggs' in D
次の3つの一般的な操作はlistオブジェクトを返します.
>>>D.keys() #['eggs', 'ham', 'spam']
>>>D.values() #[3, 1, 2]
>>>D.items() #[('eggs', 3), ('ham', 1), ('spam', 2)]
以上がpython 2であることに注目すべきである.7の文法、Python 3.0でリスト呼び出しに配置する必要がありますpython 3.0のkeys()は反復器を返します.
>>>list(D.keys())
>>>list(D.values())
>>>list(D.items())
マージ操作は次のとおりです.
>>>D={'eggs': 3, 'ham': 1, 'spam': 2}
>>>D2={'turkey': 6, 'ham': 2}
>>>D.update(D2) #
>>>print(D)
{'turkey': 6, 'eggs': 3, 'ham': 2, 'spam': 2}
上記の操作から、マージ中に同じkeyのアイテムがマージされ、keyが同じでvalueが異なる場合に更新されることがわかります.
削除操作には2つの方法があります.pop()このキーに対応する値を削除します.存在しないキーを削除すると、エラーが表示されます.
>>>D.pop('eggs')
3
>>>del D['eggs']
その他の辞書方法:
存在しないキーを読み込むとエラーが発生することが多く、getメソッドでエラーを回避し、Noneのみを返すことができます.
>>>D.get('spam') #A key that is there
2
>>>print(D.get('toast')) #A key that is missing
None
>>>D.get('toast', 88) #if a key is missing, 88 is default
88
辞書の大きさの比較はPython 3.0では有効ではありません:
>>>D1 > D2 #Python2.6
>>>sorted(D1.items()) > sorted(D2.items()) #python3.0
練習問題:
1、2つの方法で5つの0を含むリストを作成する
>>>[0,0,0,0,0]
>>>[0]*5
2、2つの方法で辞書を作成し、2つのキー'a','b'があり、各キーに関連する値は0である.
>>>D={'a':0,'b':0}
>>>L1=['a','b']
>>>D = dict.fromkeys(L1,0)
>>>dict(a=0,b=0)
3、辞書オブジェクトを元の場所で修正する演算を4つ挙げる
>>>D.pop(key)
>>>D['spam']=10
>>>D.update(D2)
>>>del D(key)
転載先:https://blog.51cto.com/12877417/1921254