辞書
前回の研究により、リストとタプルを使用して順序付きセットを表現できることがわかりました。前の例では、リストを使用してユーザーのニックネームを保存しました
user=['liangdianshui','twowater','两点水']
ユーザーのニックネームも保存する必要がある場合口座番号を記録しますか?
リストを使用すると、次のように解決できます:
user=[['liangdianshui','111111'],['twowater','222222'],['两点水','333333']]
しかし、この方法で表現するのは不便であり、ニックネームに基づいて対応するニックネームを見つけるのは難しく、時間が長くなるほど、リストを作成するほど時間がかかりますが、この時は dict (辞書) で表現できます Python には辞書 (dict) が組み込まれています dict の正式名は Dictionary で、JAVA のマップに相当します。キーと値 (キーと値) ストレージを使用し、検索速度が非常に高速です。
user={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}
1. dict (辞書) の作成
Dictionary も変数コンテナ モデルであり、あらゆる種類のオブジェクトを格納できます。
ディクショナリ内の各キーと値 (key=>value) ペアはコロン (:) で区切られ、各ペアはコンマ (,) で区切られ、ディクショナリ全体が中括弧で囲まれます。 ({}) の形式は次のとおりです。
dict = {key1 : value1, key2 : value2 }
注: キーは一意である必要がありますが、値は一意である必要はありません。値は任意のデータ型にすることができますが、キーは不変である必要があります。
dict (辞書) インスタンスの作成:
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'} dict2={'abc':1234,1234:'abc'}
2. dict (辞書) にアクセス
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'} print(dict1)
出力結果:
{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'}
ここで注意すべき点は、このキーが辞書に存在しない場合、エラーが報告されるということです。
3. dict (辞書) の変更
新しいコンテンツを辞書に追加する方法は、新しいキー/値のペアを追加するか、既存のキー/値を変更または削除することです。ペア
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'} print(dict1) # 新增一个键值对 dict1['jack']='444444' print(dict1) # 修改键值对 dict1['liangdianshui']='555555' print(dict1)
出力結果:
{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'} {'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333', 'jack': '444444'} {'liangdianshui': '555555', 'twowater': '222222', '两点水': '333333', 'jack': '444444'}
4. dict (dictionary) の削除
del を使用して、dict (dictionary) 内の要素を削除できます。 dict (dictionary) も削除できます。
clear() メソッドを呼び出すことで、辞書内のすべての要素をクリアできます。
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'} print(dict1) # 通过 key 值,删除对应的元素 del dict1['twowater'] print(dict1) # 删除字典中的所有元素 dict1.clear() print(dict1) # 删除字典 del dict1
出力結果:
{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'} {'liangdianshui': '111111', '两点水': '333333'} {}
5 , dict(辞書)を使うときの注意点
(1) dict(辞書)ではキーを2回作成することはできませんが、dict(辞書)作成時に表示された場合は、キー値が 2 回割り当てられた場合、最後に割り当てられた値が優先されます。
例:
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333','twowater':'444444'} print(dict1) print(dict1['twowater'])
出力結果:
{'liangdianshui': '111111', 'twowater': '444444', '两点水': '333333'} 444444
( 2) dict (辞書) キーは不変である必要がありますが、キーは数値、文字列、またはタプルとして使用できますが、リストは使用できません。
例:
#-*-coding:utf-8-*- dict1={'liangdianshui':'111111' ,123:'222222' ,(123,'tom'):'333333','twowater':'444444'} print(dict1)
出力結果:
{'liangdianshui': '111111', 123: '222222', (123, 'tom'): '333333', 'twowater': '444444'}
(3) dict が内部的に格納される順序は、キーが入力される順序とは関係がありません。
list と比較すると、dict は次のようになります。特徴:
検索と挿入の速度は非常に速く、キーが増加しても速度が低下することはありません。
大量のメモリを消費し、大量のメモリを浪費します。
リストの場合はその逆です。
要素の数が増えると、検索と挿入にかかる時間が長くなります。
##占有スペースもメモリの浪費もほとんどありません#6. dict(辞書)の関数とメソッドメソッドと関数 説明 cmp(dict1, dict2) 2 つの辞書を比較する 要素 len(dict) 辞書要素数の計算 str(dict) 辞書の印刷可能な文字列表現を出力します。 type(variable) 入力変数の型を返します。変数が辞書の場合は、辞書の型を返します dict.clear() 辞書内のすべての要素を削除します dict.copy() Return辞書 Copy dict.values() 辞書内のすべての値をリストとして返す popitem () 辞書内のキーと値のペアをランダムに返して削除します dict.items() 走査可能なものを返します( key、value) リストとしての要素 グループ配列