はじめに
この実験では、Python で変数が辞書 (dictionary) かどうかを確認する方法を学びます。辞書 (dictionary) は、キーと値のペアでデータを格納するために使用される基本的なデータ構造です。まず、中括弧 {} とキーベースのインデックスを使用して辞書を作成、アクセス、および変更する方法を含む、辞書の基本を理解します。
次に、この実験では type() 関数と isinstance() 関数を使用して、変数が辞書 (dictionary) かどうかを識別する方法を案内します。これらのメソッドをテストする Python スクリプトを作成し、出力を観察することで、変数が辞書 (dictionary) オブジェクトを保持しているかどうかをプログラム的に判断する方法を理解を深めます。
辞書を理解する
このステップでは、Python の基本的なデータ構造である辞書 (dictionary) について学びます。辞書 (dictionary) は、キーと値のペアでデータを格納するために使用され、関連付けられたキーに基づいて値を迅速に取得することができます。
辞書 (dictionary) は中括弧 {} を使用して定義されます。各キーと値のペアはコロン : で区切られ、ペア同士はコンマ , で区切られます。以下は簡単な例です。
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
print(my_dict)
辞書 (dictionary) を操作するために、VS Code エディタを使用して ~/project ディレクトリに dictionary_example.py という名前の Python ファイルを作成しましょう。
VS Code を開き、~/project ディレクトリに dictionary_example.py という名前の新しいファイルを作成し、以下の内容を追加します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Print the entire dictionary
print(my_dict)
次に、ターミナルで以下のコマンドを使用して Python スクリプトを実行します。
python ~/project/dictionary_example.py
以下の出力が表示されるはずです。
{'name': 'Alice', 'age': 30, 'city': 'New York'}
辞書 (dictionary) 内の特定の値にアクセスするには、角括弧 [] 内にキーを使用します。
name = my_dict["name"]
print(name)
dictionary_example.py ファイルを変更して、以下の行を追加します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Access a value using the key
name = my_dict["name"]
print(name)
再度スクリプトを実行します。
python ~/project/dictionary_example.py
今度は以下の出力が表示されます。
Alice
辞書 (dictionary) に新しいキーと値のペアを追加することもできます。
my_dict["occupation"] = "Engineer"
print(my_dict)
dictionary_example.py ファイルを更新します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Add a new key-value pair
my_dict["occupation"] = "Engineer"
print(my_dict)
スクリプトを実行します。
python ~/project/dictionary_example.py
以下の出力が表示されます。
{'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'Engineer'}
辞書 (dictionary) はミュータブル (mutable) であり、つまりキーに関連付けられた値を変更することができます。
my_dict["age"] = 31
print(my_dict)
dictionary_example.py ファイルを変更します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Change the value of an existing key
my_dict["age"] = 31
print(my_dict)
スクリプトを実行します。
python ~/project/dictionary_example.py
以下の出力が表示されます。
{'name': 'Alice', 'age': 31, 'city': 'New York'}
辞書 (dictionary) を理解することは、Python で構造化データを操作する上で重要です。辞書 (dictionary) は、情報を柔軟かつ効率的に格納して取得する方法を提供します。
type() を使って識別する
このステップでは、Python の type() 関数を使って変数のデータ型を識別する方法を学びます。これは、扱っているデータの種類を理解し、コードのデバッグを行うための便利なツールです。
type() 関数はオブジェクトの型を返します。たとえば、整数を含む変数がある場合、type() は <class 'int'> を返します。文字列が含まれている場合は <class 'str'> を返し、以下同様です。
前のステップで作成した dictionary_example.py ファイルを引き続き使いましょう。異なる変数の型を識別するコードを追加します。
VS Code で dictionary_example.py を開き、以下の行を追加します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check the type of the dictionary
print(type(my_dict))
## Access a value
name = my_dict["name"]
## Check the type of the value
print(type(name))
## Check the type of the age
age = my_dict["age"]
print(type(age))
次に、以下のコマンドを使って Python スクリプトを実行します。
python ~/project/dictionary_example.py
以下の出力が表示されるはずです。
<class 'dict'>
<class 'str'>
<class 'int'>
この出力から、my_dict が辞書 (dict) で、name が文字列 (str)、age が整数 (int) であることがわかります。
type() はリストやブール値などの他のデータ型でも使うことができます。dictionary_example.py にさらにいくつかの例を追加しましょう。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check the type of the dictionary
print(type(my_dict))
## Access a value
name = my_dict["name"]
## Check the type of the value
print(type(name))
## Check the type of the age
age = my_dict["age"]
print(type(age))
## Create a list
my_list = [1, 2, 3]
print(type(my_list))
## Create a boolean
is_adult = True
print(type(is_adult))
再度スクリプトを実行します。
python ~/project/dictionary_example.py
今度は以下の出力が表示されます。
<class 'dict'>
<class 'str'>
<class 'int'>
<class 'list'>
<class 'bool'>
ご覧のとおり、type() は Python で扱っているデータ型を理解するのに役立つ汎用的な関数です。複雑なデータ構造を扱うときや、変数の型がわからないときに特に便利です。
isinstance() で確認する
このステップでは、Python の isinstance() 関数を使って、オブジェクトが特定のクラスまたは型のインスタンスであるかどうかを確認する方法を学びます。この関数は、継承も考慮するため、type() よりも堅牢です。
isinstance() 関数は 2 つの引数を取ります。確認したいオブジェクトと、それを確認する対象のクラスまたは型です。オブジェクトが指定されたクラスまたは型のインスタンスである場合は True を返し、そうでない場合は False を返します。
dictionary_example.py ファイルを引き続き使いましょう。isinstance() を使って異なる変数の型を確認するコードを追加します。
VS Code で dictionary_example.py を開き、以下の行を追加します。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check if my_dict is a dictionary
print(isinstance(my_dict, dict))
## Access a value
name = my_dict["name"]
## Check if name is a string
print(isinstance(name, str))
## Check if age is an integer
age = my_dict["age"]
print(isinstance(age, int))
次に、以下のコマンドを使って Python スクリプトを実行します。
python ~/project/dictionary_example.py
以下の出力が表示されるはずです。
True
True
True
この出力は、my_dict が辞書で、name が文字列、age が整数であることを確認しています。
isinstance() を使って、2 番目の引数として型のタプルを渡すことで、一度に複数の型をチェックすることもできます。たとえば:
## Check if age is either an integer or a float
print(isinstance(age, (int, float)))
dictionary_example.py ファイルを変更して、このチェックを含めましょう。
## Create a dictionary
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
## Check if my_dict is a dictionary
print(isinstance(my_dict, dict))
## Access a value
name = my_dict["name"]
## Check if name is a string
print(isinstance(name, str))
## Check if age is an integer
age = my_dict["age"]
print(isinstance(age, int))
## Check if age is either an integer or a float
print(isinstance(age, (int, float)))
再度スクリプトを実行します。
python ~/project/dictionary_example.py
今度は以下の出力が表示されます。
True
True
True
True
isinstance() は Python での型チェックに強力なツールです。特に継承を扱う場合や、複数の型をチェックする必要がある場合に便利です。これにより、変数が期待される型であることを保証し、より堅牢で信頼性の高いコードを書くことができます。
まとめ
この実験では、Python の辞書(dictionary)について学びました。辞書は、データをキーと値のペアで格納する基本的なデータ構造です。辞書を作成し、キーを使って値にアクセスし、新しいキーと値のペアを追加する方法を学びました。
また、type() 関数と isinstance() 関数を使って、変数が辞書であるかどうかを確認する練習も行いました。type() 関数はオブジェクトの型を返し、isinstance() はオブジェクトが指定されたクラスまたは型のインスタンスであるかどうかをチェックします。



