【Python】文字列 辞書の基本操作 【基本講座】

【Python】文字列 辞書の基本操作 【基本講座】

Pythonには、リストやタプルの他に、複数のデータをまとめて管理する組込み型が用意されています。それが辞書です。ここでは辞書型の基本操作を学んでいきましょう。

出典:http://www.photo-ac.com/

文字列操作の基本

辞書 dict の基本構造

辞書は、1組のデータをキーと値をペアにして管理しています。SQLをやったことのある人は、なんとなく雰囲気が伝わるかもしれませんね。キーは、重複のない(ユニークな)文字列を使用します。連想配列という言葉を聞いたことがあるかもしれませんが、まさにそれです。

Pythonでは、辞書は、dictクラスのオブジェクトです。文字列やリスト、タプルなどをシーケンス型と呼んでいたのに対して、辞書は、マッピング型と呼ばれていて、区別されている点にも注意が必要です。

辞書オブジェクトを生成すると下記のようになります。

ポイントは、「キー:値」と「{}」で囲むことです。
あと、辞書の要素の順番に関してですが、順番が保証されていないため、リテラルで記述した時と順番が異なります。

辞書 dict の基本操作

辞書の要素数を求める

文字列やリスト同様に、len()関数を使えば要素数を求めることができます。

辞書から値を取り出したり、設定したい

辞書から値を取り出したい時、それとペアになっているキーを指定することで取り出すことができます。

辞書は、ミュータブルなので、値を変更できます。

辞書の要素(キーと値)を追加したい

辞書に新たなデータを追加するときは、存在しないキーに対して値を設定します。
キーの重複が認められてないためです。もし、キーが重複してしまったら、後の重複キーの値が上書きされます。

辞書の要素(キーと値)を削除したい

del 辞書[キー] で削除可能です。

存在しないキーを指定するとKeyError が出ます。

辞書にキーが存在するか確認したい

リストなどと同じように in演算子を使用します。

辞書 dict の要素を取得する

リストで要素が取得できたように、辞書でも要素を取得できるようなメソッドが用意されています。

キーを取得する key()メソッド

値を取得する values()メソッド

ここで見慣れないオブジェクトが出てきましたね。
dict_keys() dict_values() は、ビューと呼ばれるオブジェクトです。
これでは、何かと不便だと思いますので、list()コンストラクタでキャストすると型変換できます。

キーと値を取得する items()メソッド

返し値がイテラブルなので、for文で要素を取り出せます。
キーと値のペアがタプルで取り出されます。

重複を許さない集合set

上述で辞書には重複を許されていないと書きましたが、正確に言うと上書きされるのでエラーになるわけではありません。
しかし、ここで紹介する集合 setクラスでは、要素の重複を許していません。
なぜここで紹介するかというと、{}で囲うため類似として紹介しています。
なお、データ構造は要素であって、キーと値のペアとかではありません。

例えば

setクラスのメソッド

よく使うメソッドを表にしてみたので覚えましょう。

add(【要素】) 【要素】要素を追加する
remove(【要素】) 【要素】を削除する
clear() 集合【要素】をすべて削除する

集合の演算リスト

set1 | set2 set1とset2からなる新しい集合を戻す
set1 & set2 set1とset2に共通する要素を新しい集合を戻す
set1 – set2 set1に含まれているが、set2に含まれない要素の新しい集合を戻す
set1 ^ set2 set1とset2のどちらか一方だけに含まれる要素の新しい集合を戻す

Pythonおすすめ書籍

最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。

基礎 Python (IMPRESS KISO SERIES)

新品価格
¥6,200から
(2020/4/21 20:50時点)

入門 Python 3

新品価格
¥4,070から
(2020/4/21 20:53時点)

Effective Python ?Pythonプログラムを改良する59項目

新品価格
¥3,520から
(2020/4/21 20:52時点)

がんばらないでプログラマーになりたい人向けの学習方法とは?

【スクール】今流行りのプログラミングスクールについて徹底的に調べてみた