はじめに
Pythonには、リストや辞書などの基本的なデータ型がありますが、それらと並んで重要なのが「set」です。
setは、重複する値を持たず、順序が保証されないデータ型です。しかし、setは可変(mutable)なデータ型であり、その要素を後から追加、削除することができます。
一方で、「frozenset」はsetと同じように重複する値を持たず、順序が保証されないデータ型ですが、要素を後から追加、削除することができない不変(immutable)なデータ型です。
この記事では、Pythonのfrozenset関数の使い方を初心者でも分かるように解説します。
frozenset関数の基本的な使い方
frozenset関数は、引数にイテラブル(リストやタプルなど)を渡すと、そのイテラブルからfrozensetオブジェクトを作成します。これは重複する値を持たず、順序が保証されないという特性を持っています。
以下に、リストからfrozensetを作成する基本的な例を示します。
ソースコード例
1 2 3 |
list_1 = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6] fs_1 = frozenset(list_1) print(fs_1) |
出力結果
frozenset({1, 2, 3, 4, 5, 6})
辞書からfrozensetを作成する
frozenset関数は、辞書を引数に取ることも可能です。
しかし、辞書を引数に渡すと、frozensetは辞書のキーだけを要素として持つことに注意してください。
以下に、辞書からfrozensetを作成する例を示します。
ソースコード例
1 2 3 |
dict_1 = {"apple": 1, "banana": 2, "cherry": 3} fs_2 = frozenset(dict_1) print(fs_2) |
出力結果
frozenset({'apple', 'banana', 'cherry'})
frozensetのメソッド
frozensetには、setと同様のメソッドが用意されています。ただし、setのように要素を追加したり、削除したりするメソッドは存在しません。
以下に、frozensetで使用できる主なメソッドを紹介します。
ポイント
- union( ) : 二つのfrozensetの和集合を返す
- intersection( ) : 二つのfrozensetの積集合を返す
- difference( ) : 二つのfrozensetの差集合を返す
- isdisjoint( ) : 二つのfrozensetが共通の要素を持たない場合はTrueを返す
frozensetのメソッドの使用例
それでは、上記で紹介したfrozensetのメソッドを使った具体的なコード例を見てみましょう。
ソースコード例
1 2 3 4 5 6 7 |
fs_3 = frozenset([1, 2, 3, 4]) fs_4 = frozenset([3, 4, 5, 6]) print(fs_3.union(fs_4)) print(fs_3.intersection(fs_4)) print(fs_3.difference(fs_4)) print(fs_3.isdisjoint(fs_4)) |
出力結果
frozenset({1, 2, 3, 4, 5, 6})
frozenset({3, 4})
frozenset({1, 2})
False
まとめ
今回は、Pythonのfrozenset関数の使い方について解説しました。
frozensetは、イミュータブル(不変)なsetで、重複する要素を持たず、順序も保証されないという特性を持っています。
基本的な使い方から、frozensetのメソッドまで詳しく解説しましたが、まだまだfrozensetには多くの特性と用途があります。ぜひとも、この記事をスタートポイントとして、frozensetの更なる探求をしてみてください。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!