Pythonでセットを作成(set, セット内包表記)
この記事では、Pythonでセットを作成する方法について説明します。set()コンストラクタとセット内包表記を使用して、様々な方法でセットを作成する方法を学びます。
目次
set()コンストラクタによるセットの作成
最も基本的な方法は、set()コンストラクタを使用することです。イテラブルオブジェクト(リスト、タプルなど)を渡してセットを作成します。
numbers = [1, 2, 2, 3, 4, 4, 5]
my_set = set(numbers)
print(my_set) # 出力: {1, 2, 3, 4, 5}
set()コンストラクタは、渡されたイテラブルオブジェクトの重複要素を自動的に削除し、一意な要素のみを含むセットを作成します。
セット内包表記によるセットの作成
セット内包表記を使うと、より簡潔にセットを作成できます。リスト内包表記とよく似ていますが、中括弧{}を使用します。
numbers = [1, 2, 3, 4, 5]
squared_set = {number**2 for number in numbers}
print(squared_set) # 出力: {1, 4, 9, 16, 25}
上の例では、numbersリストの各要素を2乗した値からなるセットを作成しています。
空のセットの作成
空のセットを作成するには、空の中括弧{}ではなく、set()コンストラクタを使用する必要があります。
empty_set = set()
print(empty_set) # 出力: set()
# 空の中括弧{}は辞書型を生成します
not_empty_set = {}
print(not_empty_set) # 出力: {}
空の中括弧{}で作成されたものは辞書型となり、空のセットとは異なるデータ型となります。
例:重複要素の削除
リストから重複要素を削除して一意な要素のみを取り出すのに、set()が非常に便利です。
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_elements = set(my_list)
print(unique_elements) # 出力: {1, 2, 3, 4, 5}
set()を使用することで簡単に重複要素を削除できます。
例:リストからのセット作成
リストからセットを作成する例です。
my_list = ['apple', 'banana', 'apple', 'orange']
my_set = set(my_list)
print(my_set) # 出力: {'apple', 'banana', 'orange'}
文字列のリストからも、重複を削除したセットを作成できます。
例:条件付きセット作成
セット内包表記では、条件付きで要素を選択することもできます。
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = {number for number in numbers if number % 2 == 0}
print(even_numbers) # 出力: {2, 4, 6}
この例では、numbersリストから偶数のみを含むセットを作成しています。
関連記事
- Pythonでリストを作成(list, リスト内包表記)
- Pythonで辞書を作成(dict, 辞書内包表記)
- Pythonでセットに要素を追加(add, update)
- Pythonでセットから要素を削除(remove, discard, pop, clear)
- Pythonでセットの要素の存在を確認(in演算子)
- Pythonでセットの積集合・和集合・差集合を求める(&, |, -, intersection, union, difference)
- Pythonでセットの要素数を取得(len)
- Pythonでセットをループ処理(for element in set)
- Pythonでセットをコピー(copy)
- Pythonでfrozensetを使う