Pythonの辞書にはキーとバリューのペアでデータが格納されています。それらのデータを自由に取り出すために使えるメソッドを紹介します。
以下のメソッドを使うとfor文で辞書を自由に使うことができます。その関連記事は最後に紹介しています。
目次
メソッドとは?
メソッドとはオブジェクト専用の関数のことです。言い換えると、辞書型のデータ以外には使えない関数のことです。
「辞書.メソッド()」と書きます。辞書名の後ろにドットでつなげてください。この書き方はどのメソッドでも共通ですね。
オブジェクトとはデータの種類・性質とそのデータに対してできる処理をまとめて指す言葉です。最初はこの認識でOKです。文字、数値、リスト、辞書などのような種類とそれらの性質をまとめて表す言葉です。
辞書のメソッド一覧
キーを取得:keysメソッド
1 2 3 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo.keys() dict_keys(['name', 'hight', 'weight']) |
辞書のキーを取得します。これは3行目に結果が書かれていますが、これはリストではなく「dict_keysオブジェクト」です。
このオブジェクトはfor文でループさせることができるイテラブル(反復可能)という性質があります。
バリューを取得:valuesメソッド
1 2 3 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo.values() dict_values(['Tom', 180, 80]) |
辞書のバリューを取得します。これもリストではなく「dict_valuesオブジェクト」です。
同様にイテラブルの性質をもちます。
キー・バリューペアそ取得:itemsメソッド
1 2 3 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo.items() dict_items([('name', 'Tom'), ('hight', 180), ('weight', 80)]) |
辞書のキーバリューペアを取得します。「dict_itemsオブジェクト」でイテラブルです。
ない要素を追加:setdefaultメソッド
- 「辞書.setdefault(キー, バリュー)」と書く
- キーが存在しないときとバリューを追加
- 新規追加されたバリューを返す(5行目)
- すでにキーがある場合は何もしない。
- 既存のバリューを返す(3行目)
1 2 3 4 5 6 7 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo.setdefault('name', 'Bob') 'Tom' #既存のデータを返す >>> jisyo.setdefault('year', 2002) 2002 #新規のデータを返す >>> jisyo {'name': 'Tom', 'hight': 180, 'weight': 80, 'year': 2002} |
要素を取得:getメソッド
- 「辞書.get(キー, 代わり)」と書く
- キーがあればそのバリューを返す(3行目)
- キーがなければ「代わり」の値を返す(5行目)
1 2 3 4 5 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo.get('name', 'non') 'Tom' >>> jisyo.get('year', 'nothing') 'nothing' |
要素の確認方法
- 「in」を使う
- 戻り値はTrue、False
- キーに入っているか確認するときはkeysメソッド
- バリューに入っているか確認するときはvaluesメソッド
- キーバリューペアを確認するときはitemsメソッド
- itemsのときはキーとバリューをタプルに格納(12行目)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> 'name' in jisyo True >>> 'year' in jisyo False >>> 'name' in jisyo.keys() True >>> 'name' in jisyo.values() False >>> 'Tom' in jisyo.values() True >>> ('name', 'Tom') in jisyo.items() True |
まとめ
- kyesメソッド:キーを取得「dict_keysオブジェクト」
- valuesメソッド:バリューを取得「dict_valuesオブジェクト」
- itemsメソッド:キーバリューペアを取得「dict_itemsオブジェクト」
- setdefaultメソッド:キーがないときにバリューを追加
- getメソッド:キーを指定してバリューを取得
- 要素の確認は「in」を使う
- コンテナ4種類「リスト・タプル・辞書・セット」とは?
- リストとは?インデックス・要素数・結合する方法を解説
- リストに使えるメソッド11個「追加・削除・ソート」
- for文でリストのインデックスと要素を取り出す(enumerate)
- リストで内包表記する方法「for・if・lambdaの書き方」
- タプルとは?追加・削除・結合・リストに変換する方法
- リスト・タプルをスライスする方法とインデックスの覚え方
- 辞書とは?追加・削除・上書きする方法
- 辞書に使えるメソッド5個(keys・values・items・get・setdefault)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
関連記事
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]