今回はPythonでの辞書の書き方を紹介します。
Pythonの辞書はデータをキーと値のペアで保存する強力なデータ構造です。
これは非常に柔軟で効率的な手段であり、プログラマーにとって頻繁に使用されます。
本記事ではPythonにおける辞書の書き方に焦点を当て、その基本的な概念から始めて、より高度な使い方にも触れていきます。
まず最初に、基本的な辞書の構造を見ていきましょう。
そして、辞書を効果的に使用するためのヒントやトリックも紹介します。
Pythonの辞書は単なるデータのコレクションを超え、多岐にわたるアプリケーションで活用できる強力なツールです。
それではPythonの辞書について深く理解し、柔軟性と効率性を引き出すための手法を探っていきましょう。
また動画もあるので必要な方はご覧ください。
Pythonにおける辞書の書き方
辞書というのはリスト、タプルのように複数のデータをまとめておく構造をとっていますが、キーと値というペアで一つのデータを管理する書き方が特徴です。
他のプログラミング言語ではオブジェクト、JSONなどと言われるものに書き方が似ています。
# キーと値の文字列のペアでJSONのように管理する
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA) # {'id': '0001', 'name': 'tanaka', 'age': 20}と表示される
中身を空にした状態でも作ることができます。
そのまま空の状態で変数を宣言しても大丈夫ですし、専用のメソッドでdictというメソッドがあるのですが引数を無しにするのも同じ結果になります。
studentB = {}
studentC = dict()
print(studentB, studentC) # 両方とも{}と表示される
作成した辞書から特定のキーの値を取得するにはキーの名前で指定します。
リストだとインデックス番号でしたが辞書の場合はキーの名前をそのまま文字列として書くスタイルです。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA["id"]) # 0001と表示される
もしくは専用のメソッドでgetというものがあり引数にキーの名前を指定する書き方でも特定のキーの値を取得できます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA.get("name")) # tanakaと表示される
すでにあるデータの値を別のものに変更することもできます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
studentA["sports"] = "soccer"
print(studentA) # {'id': '0002', 'name': 'tanaka', 'age': 20}と表示される
この書き方は新しいデータを追加するときにも使用できます。
現状はid, name, ageの3種類がありますが新しくsportsを値をtennisとして追加してみます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
studentA["id"] = "0002"
print(studentA) # {'id': '0002', 'name': 'tanaka', 'age': 20, 'sports': 'soccer'}と表示される
追加、変更だけでなく削除もできます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
del studentA["id"]
print(studentA) # {'name': 'tanaka', 'age': 20, 'sports': 'soccer'}と表示される
削除したものを別の変数に入れて違う処理に転用したいときはpopメソッドがあります。
引数に入れたキー名の値を削除しつつ、変数など別の場所に使用することができます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
deleted = studentA.pop("name")
print(deleted) # "tanaka"と表示される
また全てを削除したいときはclearメソッドを使います。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
studentA.clear()
print(studentA) # {}と表示される
Pythonで辞書のデータを全て取得する
前章では特定のデータを取得していましたが、格納されているデータを全て取得することもできます。
まずは以下のように書くとデータを全取得できます。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA.items())
# dict_items([('id', '0002'), ('name', 'tanaka'), ('age', 20), ('sports', 'soccer')])と表示される
一方で「キー名だけ全取得」「値だけ全取得」というのも可能です。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA.keys())
# dict_keys(['id', 'name', 'age', 'sports'])と表示される
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
print(studentA.values())
# dict_values(['0002', 'tanaka', 20, 'soccer'])と表示される
例えば取り出した値だけをリストに変換してリストでしか使用できない処理に回したりすることがあるためです。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
value = studentA.values()
print(list(value))
# ['0002', 'tanaka', 20, 'soccer']と表示される
これらの全取得はデータの検索にも活用されることが多いです。
studentA = {
'id': "0001",
'name': "tanaka",
'age': 20
}
# 辞書のプロパティ名を検索する
print("name" in studentA.keys()) # Trueと表示される
# 辞書の値を検索する
print("tanaka" in studentA.values()) # Trueと表示される
# 辞書のプロパティ名と値を検索する
print(("age", 20) in studentA.items()) # Trueと表示される