次回より『ヒデログ』とご検索ください

【Python入門】辞書型(ディクショナリ型)の使い方が完璧に分かります

python

辞書型を知りたい人
辞書型って難しくてよくわからない。
ひでひろ
辞書型の使い方を徹底的に教えます。

この記事を読むと分かる事

  • 【基礎】辞書型の作り方
  • 【基礎】辞書型の要素の変更の仕方
  • 【応用】辞書型の使い方
について解説します。

※この記事のコードはPython3.7、Windows10で動作確認しています。

辞書型とは

辞書型(ディクショナリ型/dictionary型)はPythonではよく使われる型です。他の言語では連想配列とも呼ばれています。

辞書型は必ず「キーと値をセットにした」データ型です。他の配列と区別するため、辞書型では{}を使用して表示されます。

辞書型を使うことでキーと値を組み合わせることができ、キーを使って値にアクセスすることができます。

キーには任意の値を設定することができ(正確にはイミュータブル型)、作成後も「キーと値」とセットにした要素を追加、削除をすることができます。

1つの辞書型のデータで同じキーを使うことは出来ません。

基本的な使い方

まずは、辞書型の基本的な使い方を説明します。辞書型とはキーと値の組み合わせで作成されたデータ型のことです。

キーと値はカンマ(,)で区切られていて、キーに対応する値はコロン(:)で表示されています。

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

empty_dict={}
# {}

empty_dict=dict()
# {}

空の辞書型を作る方法は{}またはdict()で作成することができます。

これによってempty_dictは辞書型となります。それによって、辞書型の操作を行うことができるようになります。

辞書型の型

empty_dict={}
type(empty_dict)
# dict

typeで調べるとdictとなります。これが辞書型を表しています。

初期値設定

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
# {'a': 'apple', 'b': 'banana', 'c': 'cheery'}

number_dic={1.1:1,2:2.2}
# {1.1: 1, 2: 2.2}

japanese_dict={'あ':'あかちゃん','い':'インコ'}
# {'あ': 'あかちゃん', 'い': 'インコ'}

空の辞書型の変数を作らなくても、初期値を与えてデータ型の変数を作ることができます。

キーには文字列だけでなく、float型、int型、2バイト文字列も使用することができます。

dict関数を使った作り方

fruits_dict=dict(a='apple',b='banana',c='cherry')
# {'a': 'apple', 'b': 'banana', 'c': 'cherry'}

fruits_dict=dict([('a','apple'),('b','banana'),('c','cherry')])
# {'a': 'apple', 'b': 'banana', 'c': 'cherry'}

初期値の設定をする時にはdict関数を使って設定をすることもできます。

空の辞書型の変数を作成した時にdict()を使ったものに引数を与えているものになります。

dict(a='apple')のキーとなるaはクオテーションで囲む必要がないので注意が必要です。

値へのアクセス

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict['a']
# 'apple'

fruits_dict.get('a')
# 'apple'

辞書型へのアクセス方法は2つあります。2つ目(get関数)は辞書型のメソッドを利用しています。

値の書き換え

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict['a']='tomato'
fruits_dict
# {'a': 'tomato', 'b': 'banana', 'c': 'cheery'}

キーを指定して変更する値を代入します。

要素の追加

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict['d']='durian'
fruits_dict
# {'a': 'apple', 'b': 'banana', 'c': 'cheery', 'd': 'durian'}

要素を追加する方法は、別の書き方もできます。

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict.setdefault("d", "durian")
# 出力
# 'durian'
fruits_dict
# {'a': 'apple', 'b': 'banana', 'c': 'cheery', 'd': 'durian'}

キーと値を指定して要素を追加することができます。ただし、キーは既存の変数のキーになっていないものをします。重複するとエラーになります。

要素の削除

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
del fruits_dict['a']
# or
del(fruits_dict['a'])
fruits_dict
# {'b': 'banana', 'c': 'cheery'}

キーを指定してdel関数を使用することで要素を削除することができます。

全要素の削除

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict.clear()
fruits_dict
# {}

辞書型のclearメソッドですべての要素を削除できます。

辞書型の変数の結合

fruits_dict1={'a':'apple','b':'banana','c':'cheery'}
fruits_dict2={'d':'durian','e':'elderberry','f':'fig'}
fruits_dict1.update(fruits_dict2)
fruits_dict1
# {'a': 'apple','b': 'banana','c':'cheery','d':'durian','e':'elderberry','f':'fig'}

update関数を使用することで引数に指定した辞書型変数を後尾に追加することができます。

応用的な使い方

要素の作成・変更・削除の仕方を紹介しました。それらのデータ(辞書)を活用した使い方を紹介します。

存在確認

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
'a' in fruits_dict
# True
'd' in fruits_dict
# False

キー in 変数(データ型)でキーに対応する要素があるかどうか調べることができます。

キー要素の取得

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict.keys()
# dict_keys(['a', 'b', 'c'])

keyメソッドで、辞書型の変数のキーをすべて取得することができます。

for key in fruits_dict.keys():
    print(key)
# a
# b
# c

for文ではfor キー in 変数.values():でキーを取得するループ分を文を作成することができます。

値の取得

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict.values()
# dict_values(['apple', 'banana', 'cheery'])

valueメソッドで、辞書型の変数の値をすべて取得することができます。

for value in fruits_dict.values():
    print(value)
# apple
# banana
# cheery

for文ではfor 値 in 変数.values():で値を取得するループ分を文を作成することができます。

キー・値の両方(要素)へのアクセス

fruits_dict={'a':'apple','b':'banana','c':'cheery'}
fruits_dict.items()
# dict_items([('a', 'apple'), ('b', 'banana'), ('c', 'cheery')])

itemsメソッドで、辞書型の変数のキー、値をすべて取得することができます。

for key,value in fruits_dict.items():
    print(key)
    print(value)
# a
# apple
# b
# banana
# c
# cheery

for文ではfor キー,値 in 変数.items():でキー、値を取得するループ分を文を作成することができます。

コメントを残す

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