Pythonの辞書操作を詳しく解説

高洛峰
高洛峰オリジナル
2017-01-13 16:17:081527ブラウズ

Python 辞書は別の変更可能なコンテナ モデルであり、文字列、数値、タプル、その他のコンテナ モデルなど、あらゆるタイプのオブジェクトを格納できます。
1. 辞書を作成する
辞書は、キーと対応する値のペアで構成されます。辞書は、連想配列またはハッシュ テーブルとも呼ばれます。基本的な構文は次のとおりです:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

次のような辞書を作成することもできます:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
注:
各キーと値はコロン (:) で区切られ、各ペアはカンマで区切られ、各ペアはカンマと全体を中括弧 ({ }) で囲みます。
キーは一意である必要がありますが、値は一意ではありません。
値は任意のデータ型にすることができますが、文字列、数値、タプルなど、不変である必要があります。
2. 辞書内の値にアクセスします

次の例のように、対応するキーを角括弧で囲みます:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
#以上实例输出结果:
#dict['Name']:  Zara
#dict['Age']:  7

データにアクセスするために辞書にないキーを使用すると、エラーが出力されます。次のように:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Alice']: ", dict['Alice'];
#上記の出力結果の例:

#dict['Zara']:
#Traceback (most last call last):
# ファイル "test.py"、4 行目、4225fa317875f3e92281a7b1a5733569内
# print "dict['Alice']: ", dict ['Alice'];
#KeyError: 'Alice'[/code]
3. 辞書を変更します
新しいコンテンツを辞書に追加する方法は、新しいキーを追加することです。以下に示すように、/value ペアを変更または削除します。 :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

 
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#以上实例输出结果:
#dict['Age']:  8
#dict['School']:  DPS School

4. 辞書要素を削除する
単一の要素を削除するか、辞書をクリアすることができます。
辞書を表示および削除するには、次の例に示すように、del コマンドを使用します:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

del dict['Name']; # 删除键是'Name'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典

print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#但这会引发一个异常,因为用del后字典不再存在:
dict['Age']:
#Traceback (most recent call last):
#  File "test.py", line 8, in <module>
#    print "dict[&#39;Age&#39;]: ", dict[&#39;Age&#39;];
#TypeError: &#39;type&#39; object is unsubscriptable

5. 辞書キーの特性
辞書の値は、標準オブジェクトまたはユーザー定義のいずれかの Python オブジェクトを制限なく取得できます。ただしキーはできません。
覚えておくべき 2 つの重要な点:
1) 同じキーを 2 回使用することはできません。作成中に同じキーが 2 回割り当てられた場合、次の例に示すように、後の値が記憶されます:

#!/usr/bin/python

dict = {&#39;Name&#39;: &#39;Zara&#39;, &#39;Age&#39;: 7, &#39;Name&#39;: &#39;Manni&#39;};

print "dict[&#39;Name&#39;]: ", dict[&#39;Name&#39;];
#以上实例输出结果:
#dict[&#39;Name&#39;]:  Manni

2) キーは不変である必要があるため、数値、文字列、またはタプルとして使用できます。次の例は機能しません:

#!/usr/bin/python

dict = {[&#39;Name&#39;]: &#39;Zara&#39;, &#39;Age&#39;: 7};

print "dict[&#39;Name&#39;]: ", dict[&#39;Name&#39;];
#以上实例输出结果:
#Traceback (most recent call last):
#  File "test.py", line 3, in <module>
#    dict = {[&#39;Name&#39;]: &#39;Zara&#39;, &#39;Age&#39;: 7};
#TypeError: list objects are unhashable

6. 辞書の組み込み関数とメソッド
Python 辞書には次の組み込み関数が含まれています:
1. cmp(dict1, dict2): 2 つの辞書要素を比較します。
2. len(dict): 辞書の要素の数、つまりキーの総数を計算します。
3. str(dict): 辞書の印刷可能な文字列表現を出力します。
4. type(variable): 入力変数の型を返します。変数が辞書の場合は、辞書の型を返します。


Python 辞書には次の組み込みメソッドが含まれています:
1. radiansdict.clear(): 辞書内のすべての要素を削除します。
2. radiansdict.copy(): 辞書の浅いコピーを返します。 .fromkeys() : シーケンス seq 内の要素を辞書のキーとして使用して、新しい辞書を作成します。 val は辞書内のすべてのキーに対応する初期値です
4. radiansdict.get(key,default=None):値が辞書にない場合は、指定されたキーの値を返します。 radiansdict.has_key(key): キーが辞書にある場合は true を返し、そうでない場合は false
6 を返します。 (): 走査可能な (キー, 値) タプル配列をリストとして返します
7 、radiansdict.keys(): 辞書のすべてのキーをリストとして返します
8. radiansdict.setdefault(key,default=None): 同様get() を実行しますが、キーが辞書にまだ存在しない場合は、キーが追加され、値がデフォルト
9 に設定されます。 radiansdict.update(dict2): 辞書 dict2 のキーと値のペアを dict
に更新します。 10. radiansdict.values(): 辞書内のすべての値をリストとして返します


その他 複数の Python 辞書 (Dictionary) 操作に関する関連記事は、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。