1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Python]04章-07 いろいろなデータ構造(ディクショナリの操作)

Posted at

#[Python]04章-07 ディクショナリの操作
ディクショナリは、キーについてはイミュータブルのため操作ができないことは説明しましたが、値についてはミュータブルのため、操作が可能です。
今回はディクショナリの操作について説明していきたいと思います。

##ディクショナリの要素の追加
まずは、要素の追加について説明します。
Python Consoleから以下のコードを入力してください。

.py
>>> foodD = {'a' : 'apple', 'b' : 'banana', 'c': 'cake'}
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'cake'}

ここまでは前回説明した通り、ディクショナリの作成となります。
では、ディクショナリの変数foodDに要素を追加してみますが、追加方法には2つあります。

####1つの要素の追加方法について
まずは1つの要素を追加する方法を説明します。
Python Consoleに以下のコードを入力してください。一度変数foodDの内容を表示してから実行します。

.py
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'cake'}
>>> foodD['d'] = 'dragon fruits'
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'cake', 'd': 'dragon fruits'}

ディクショナリに要素を追加する際には、変数名[キー] = 値という形で要素を新たに追加していきます。

では、すでにキーがあった際にはどうなるでしょうか?
Python Consoleに以下のコードを入力してください。一度変数foodDの内容を表示してから実行します。

.py
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'cake', 'd': 'dragon fruits'}
>>> foodD['c'] = 'carrot'
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'carrot', 'd': 'dragon fruits'}

**'c'**の個所が上書きされていることを確認できます。実は1つのディクショナリについて、**重複したキーは指定できません。**重複していた場合は、別の値を上書きすることになります。

####複数の要素の追加方法について
ディクショナリに複数の要素を追加するには、updateメソッドを利用します。
Python Consoleに以下のコードを入力してください。一度変数foodDの内容を表示してから実行します。

.py
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'carrot', 'd': 'dragon fruits'}
>>> foodD.update({'e' : 'egg', 'f' : 'fried potato'})
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'carrot', 'd': 'dragon fruits', 'e': 'egg', 'f': 'fried potato'}

別の辞書をマージしている形式となります。foodDを確認すると、**'e''f'**が追記されていることを確認できます。

##ディクショナリの要素の削除
ディクショナリの要素もキーを指定して削除することができます。実はリストと同じく、del文を使用して削除ができます。
Python consoleに以下のコードを入力してください。一度変数foodDの内容を表示してから実行します。

.py
>>> foodD
{'a': 'apple', 'b': 'banana', 'c': 'carrot', 'd': 'dragon fruits', 'e': 'egg', 'f': 'fried potato'}
>>> del foodD['b']
>>> foodD
{'a': 'apple', 'c': 'carrot', 'd': 'dragon fruits', 'e': 'egg', 'f': 'fried potato'}

**'b'**が削除されているのが確認できました。

また、ディクショナリの全要素を削除するには、リストと同じくclearメソッドを使用します。

.py
>>> foodD
{'a': 'apple', 'c': 'carrot', 'd': 'dragon fruits', 'e': 'egg', 'f': 'fried potato'}
>>> foodD.clear()
>>> foodD
{}

ディクショナリの全要素が削除されて、**{ }**が出力され、空であることを確認できます。

##ディクショナリの要素の探索
ディクショナリでも要素の探索は可能です。今回もキーを指定して探索していきます。
前節では**変数名[キー]**を指定して探索しましたが、もし該当するキーがないとエラーが出力されます。
今回はキーがない場合でもエラーが出力されない方法を説明します。

Python consoleに以下のコードを入力してください。まずはDにディクショナリを代入していきます。

.py
>>> D = {'NRT' : '成田空港', 'CTS' : '新千歳空港', 'HIJ' : '広島空港'}
>>> D
{'NRT': '成田空港', 'CTS': '新千歳空港', 'HIJ': '広島空港'}

キーがない場合でもエラーが出力されない方法として、getメソッドを使用します。

.py
>>> D
{'NRT': '成田空港', 'CTS': '新千歳空港', 'HIJ': '広島空港'}
>>> D.get('NRT')
'成田空港'
>>> D.get('MYJ')

まず、'NRT'はDに存在するので、'成田空港'が返ってきます。'MYJ'についてはDに存在しないため、何も返ってきません。

ちなみに、print関数を用いて存在しないキーを指定すると、Noneと返ってきます。

.py
>>> print(D.get('MYJ'))
None

他にも、リストの時に説明した、in演算子を使うことでも存在を確認できます。リストとは異なり、キーを指定して確認します。

.py
>>>'NRT' in D
True
>>>'MYJ' in D
False

##最後に
ディクショナリについて一通り見てきましたが、基本的にはリストとほぼ同じ操作であることは確認できたかと思います。違いとしては要素の番号を指定するリストに対して、ディクショナリはキーを指定するという点です。今後もよく出てくるデータ構造ですので押さえておきましょう。

###【目次リンク】へ戻る

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?