> ⑬Pythonディクショナリ – ネットワークエンジニアチュートリアル

⑬Pythonディクショナリ

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

Pythonディクショナリ

各キーはコロン(:)で区切られ、項目はコンマで区切られ、全体が中括弧で囲まれています。キーは辞書内で一意であり、値はそうではない可能性があります。ディクショナリの値はどのような型でも構いませんが、キーは文字列、数値、タプルなどの不変のデータ型でなければなりません。

辞書の値へのアクセス:

ディクショナリ要素にアクセスするには、おなじみの角カッコをキーと一緒に使用して値を取得します。以下は簡単な例です –

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'B組'}

print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

上記のコードを実行すると、次の結果が生成されます。

名前はザラ 年は7歳 クラスはB組です

dict['Name']:  Zara
dict['Age']:  7

辞書の一部ではないキーを持つデータ項目にアクセスしようとすると、次のようなエラーが発生します。

#!/usr/bin/python

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

print "dict['Alice']: ", dict['Alice']

上記のコードを実行すると、次の結果が生成されます。

dict['Alice']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

辞書の更新

以下の簡単な例に示すように、新しいエントリやキーと値のペアを追加したり、既存のエントリを変更したり、既存のエントリを削除したりして、辞書を更新することができます。

#!/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

辞書要素を削除する

個々の辞書要素を削除することも、辞書の内容全体を消去することもできます。1回の操作で辞書全体を削除することもできます。

明示的に辞書全体を削除するには、delステートメントを使用します。以下は簡単な例です –

#!/usr/bin/python

dict = {'Name': '健太', 'Age': 7, 'Class': 'First'}

del dict['Name']; # remove entry with key 'Name'
dict.clear();     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

これにより、次の結果が得られます。del dict辞書がもう存在しないために例外が発生することに注意してください。

dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

注意: del()メソッドについては、以降のセクションで説明します。

辞書キーのプロパティ

ディクショナリ値には制限はありません。任意のPythonオブジェクト(標準オブジェクトまたはユーザ定義オブジェクト)にすることができます。しかし、キーについても同じではありません。

辞書キーについて覚えておくべき2つの重要なポイントがあります。

(a)キーごとに複数のエントリが許可されていない。つまり、重複するキーは使用できません。割り当て中に重複したキーが検出されると、最後の割り当てが優先されます。たとえば –

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}

print "dict['Name']: ", dict['Name']

上記のコードを実行すると、次の結果が生成されます。

dict['Name']:  Manni

(b)鍵は不変でなければならない。つまり、文字列、数字、またはタプルを辞書キーとして使用できますが、[‘key’]のようなものは使用できません。以下に簡単な例を示します。

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}

print "dict['Name']: ", dict['Name']

上記のコードを実行すると、次の結果が生成されます。

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable

組み込みのディクショナリの関数とメソッド –

Pythonには以下の辞書関数が含まれています –

説明付きの関数
1 cmp(dict1、dict2)

両方の要素を比較します。

#!/usr/bin/python

dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = {'Name': 'Mahnaz', 'Age': 27};
dict3 = {'Name': 'Abid', 'Age': 27};
dict4 = {'Name': 'Zara', 'Age': 7};
print "Return Value : %d" %  cmp (dict1, dict2)
print "Return Value : %d" %  cmp (dict2, dict3)
print "Return Value : %d" %  cmp (dict1, dict4)

上記のプログラムを実行すると、次の結果が生成されます。

Return Value : -1
Return Value : 1
Return Value : 0
2 len(dict)

辞書の全長を指定します。これは、辞書内の項目の数と等しくなります。

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Length : %d" % len (dict)

上記のプログラムを実行すると、次の結果が生成されます。

Length : 2
3 str(dict)

辞書の印刷可能な文字列表現を生成します。

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Equivalent String : %s" % str (dict)

上記のプログラムを実行すると、次の結果が生成されます。

Equivalent String : {'Age': 7, 'Name': 'Zara'}
4 type(変数)

渡された変数の型を返します。渡された変数が辞書の場合、辞書型を返します。

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7};
print "Variable Type : %s" %  type (dict)

上記のプログラムを実行すると、次の結果が生成されます。

Variable Type : <type 'dict'>

Pythonには以下の辞書メソッドが含まれています –

SN 説明付きのメソッド
1 dict.clear()

dictionary dictのすべての要素を削除します。

#!/usr/bin/python

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

print "Start Len : %d" %  len(dict)
dict.clear()
print "End Len : %d" %  len(dict)

上記のプログラムを実行すると、次の結果が生成されます。

Start Len : 2
End Len : 0
2 dict.copy()

辞書dictの浅いコピーを返します。

#!/usr/bin/python

dict1 = {'Name': 'Zara', 'Age': 7};

dict2 = dict1.copy()
print "New Dictinary : %s" %  str(dict2)

上記のプログラムを実行すると、次の結果が生成されます。

New Dictinary : {'Age': 7, 'Name': 'Zara'}
3 dict.fromkeys()

seqのキーと値をvalueに設定して新しい辞書を作成します

#!/usr/bin/python

seq = ('name', 'age', 'sex')

dict = dict.fromkeys(seq)
print "New Dictionary : %s" %  str(dict)

dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" %  str(dict)

上記のプログラムを実行すると、次の結果が生成されます。

New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10}

 

4 dict.get(key、default = None)

以下のためのキー、キー、キーではない辞書であれば値またはデフォルト値を返します。

#!/usr/bin/python

dict = {'Name': 'Zabra', 'Age': 7}

print "Value : %s" %  dict.get('Age')
print "Value : %s" %  dict.get('Education', "Never")

上記のプログラムを実行すると、次の結果が生成されます。

Value : 7
Value : Never
5 dict.has_key(key)

 

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.has_key('Age')
print "Value : %s" %  dict.has_key('Sex')

上記のプログラムを実行すると、次の結果が生成されます。

Value : True
Value : False
6 dict.items()

dictの(キー、値)タプルのペアのリストを返します

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.items()

上記のプログラムを実行すると、次の結果が生成されます。

Value : [('Age', 7), ('Name', 'Zara')]
7 dict.keys()

辞書の辞書のキーのリストを返す

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.keys()

上記のプログラムを実行すると、次の結果が生成されます。

Value : ['Age', 'Name']
8 dict.setdefault(key、default = None)

get()と同様ですが、キーがdictにない場合はdict [key] = defaultに設定されます

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.setdefault('Age', None)
print "Value : %s" %  dict.setdefault('Sex', None)

上記のプログラムを実行すると、次の結果が生成されます。

Value : 7
Value : None
9 dict.update(dict2)

辞書dict2のキーと値のペアをdictに追加する

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }

dict.update(dict2)
print "Value : %s" %  dict

上記のプログラムを実行すると、次の結果が生成されます。

Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}
10 dict.values()

辞書のリストを返します

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7}

print "Value : %s" %  dict.values()

上記のプログラムを実行すると、次の結果が生成されます。

Value : [7, 'Zara']

前のページ⑫Pythonタプル

次のページ⑭

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:

執筆者: