Python3辞書

辞書は別の変数コンテナモデルであり、任意のタイプのオブジェクトを格納できます。

辞書の各キー値key => valueペアはコロン(:)で区切られ、各ペアはコンマ(,)で区切られます。ディクショナリ全体は中括弧{}で囲まれ、形式は次のとおりです。

d = {key1 : value1, key2 : value2, key3 : value3 }

キーは唯一でりますが、値は唯一である必要はありません。

値は任意のデータ型をとることができますが、キーは文字列や数値などの不変である必要があります。

簡単な辞書の実例は以下になります。

dict = {'name': 'Florian', 'likes': 123, 'url': 'www.ceodata.com'}

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

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

辞書の値にアクセスする

次の例のように、対応するキーを角かっこで囲みます。

実例

#!/usr/bin/python3 
dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'} 

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

上記実例の出力結果は以下になります。

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

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

実例

#!/usr/bin/python3 

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

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

上記実例の出力結果は以下になります。

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

辞書を変更する

辞書に新しいコンテンツを追加する方法は、次のように、新しいキーと値のペアを追加し、既存のキーと値のペアを変更または削除することです。

実例

#!/usr/bin/python3 

dict = {'Name': 'Florian', 'Age': 7, 'Class': 'First'} 
dict['Age'] = 8    # 年齢を更新 
dict['School'] = "初心者教程" # 情報を追加

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

上記実例の出力結果は以下になります。

dict['Age']:  8
dict['School']:  初心者教程

辞書要素を削除する。

単一の要素を削除したり辞書をクリアしたりすることもできます。辞書をクリアするのに必要な一つの操作だけです。

次の例のように、delコマンドを使用して辞書を削除します。

実例

#!/usr/bin/python3 

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

del dict['Name'] # キー 'Name'を削除する
dict.clear() # 辞書をクリアする
del dict # 辞書を削除する

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

ただし、こうすればエラーが発生します。del操作を実行すると辞書が存在しなくなるためです。

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

注意:del()メソッドについても後でも説明します。

辞書キーの特徴

辞書値は、標準オブジェクトまたはユーザー定義オブジェクトのいずれかのPythonオブジェクトにすることができますが、辞書キーはできません。
覚えておくべき2つの重要なポイントが以下になります。

1、同じキーを2回表示することはできません。 作成中に同じキーが2回割り当てられた場合、次の例のように、後者の値が記憶されます。

実例

#!/usr/bin/python3 

dict = {'Name': 'Florian', 'Age': 7, 'Name': '初心者'} 
print ("dict['Name']: ", dict['Name'])

上記実例の出力結果は以下になります。

dict['Name']:  初心者

2、キーは変更できません。次の例のように、数値、文字列、またはタプルで使用できますが、リストは使用できません。

実例

#!/usr/bin/python3 

dict = {['Name']: 'Florian', 'Age': 7} 
print ("dict['Name']: ", dict['Name'])

上記実例の出力結果は以下になります。

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

辞書にある組み込まれた関数とメソッド

Python辞書には、次の組み込み関数が含まれています。

番号関数及び説明実例
1len(dict)

辞書要素の数、つまりキーの総数を数える。
>>> dict = {‘Name’: ‘Florian’, ‘Age’: 7, ‘Class’: ‘First’}
>>>len(dict)
3
2str(dict)

辞書を出力する。印刷可能な文字列として表される。
>>> dict = {‘Name’: ‘Florian’, ‘Age’: 7, ‘Class’: ‘First’}
>>> str(dict)
“{‘Name’: ‘Florian’, ‘Class’: ‘First’, ‘Age’: 7}”
3type(variable)

入力変数のタイプを返す。変数が辞書の場合は辞書タイプを返す。
>>>dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Class’: ‘First’}
>>>type(dict)
<class ‘dict’>

Python辞書には、次の組み込みメソッドが含まれています。

番号関数及び説明
1radiansdict.clear()
辞書のすべての要素を削除する。
2radiansdict.copy()
辞書の浅いコピーを返す。
3radiansdict.fromkeys()
新しい辞書を作成し、シーケンスseqの要素を辞書のキーとして使用する。valは、辞書のすべてのキーに対応する初期値である。
4radiansdict.get(key、default = None)
指定されたキーの値を返す。キーが辞書にない場合は、デフォルトで設定されたデフォルト値を返す。
5key in dict
キーが辞書dictにある場合はtrueを返し、そうでない場合はfalseを返す。
6radiansdict.items()
検索可能な(キー、値)タプル配列をリストとして返す。
7radiansdict.keys()
list()を使用してリストに変換できるイテレータを返す。
8radiansdict.setdefault(key、default = None)
get()に似ているが、キーが辞書に存在しない場合、キーが追加され、値がデフォルトに設定される。
9radiansdict.update(dict2)
辞書dict2のキーと値のペアをdictに更新する。
10radiansdict.values()
list()を使用してリストに変換できるイテレータを返す。
11pop(key [、default])
辞書の指定されたキーに対応する値を削除する。戻り値は削除された値である。 キー値を指定する必要がある。 それ以外の場合は、デフォルト値が返される。
12popitem()
辞書内の最後のキーのペアと値をランダムに返し、削除する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です