Pythonのset型は、リスト型のような集合データの一種で、重複した値を持たないデータ型です。set型を扱えるようになると、効率よく配列関係のデータを処理できるようになります。
set型とリスト型とタプル型の違い
一般的にはset型を学習する前に、リスト型とタプル型、辞書型を学ぶと思います。各データ型の違いを一覧にすると以下のようになります。
- リスト: 重複データの可否 可、追加・削除 可、順番維持 可、2重構造 可、集合演算 不可
- タプル: 重複データの可否 可、追加・削除 不可、順番維持 可、2重構造 可、集合演算 不可
- set: 重複データの可否 不可、追加・削除 可、順番維持 不可、2重構造 不可、集合演算 可
set型の基本的な使い方
setオブジェクトの生成
setオブジェクトの生成は、5パターン考えられます。
- 単にsetオブジェクトを生成するケース
my_set = set()
print(type(my_set))
print(my_set)
- 文字列からsetオブジェクトを生成するケース
my_set = set('hello')
print(type(my_set))
print(my_set)
- リスト型からsetオブジェクトを生成するケース
hello_set = set( ['こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス', 'こんにちは'] )
print( type(hello_set) )
print(hello_set)
- タプル型からsetオブジェクトを生成するケース
hello_set = set( ('こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス') )
print( type(hello_set) )
print(hello_set)
- 辞書型からsetオブジェクトを生成するケース
hello_set = set( {'normal':'こんにちは', 'kansai':'まいど', 'karate':'おっす', 'italy':'チャオ', 'yo-kai_watch':'ウィッス'} )
print( type(hello_set) )
print(hello_set)
setの要素数を取得する:lenメソッド
リスト型のように、set型も要素数を確認できます。
hello_set = set( ['こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス', 'こんにちは'] )
print( len(hello_set) )
print(hello_set)
setに要素を追加する:addメソッド
リスト型はappend ()で要素を追加しますが、set型はadd ()で要素を追加できます。
hello_set = set( ['こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス', 'こんにちは'] )
hello_set.add('☆')
print(hello_set)
setから要素を削除する
set型の要素を削除する方法は、一部削除と全削除の2メソッドが用意されています。
removeメソッド
set型内の一部要素を削除します。
hello_set = set( ['こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス', 'こんにちは'] )
hello_set.remove('ウィッス')
print(hello_set)
clearメソッド
set型の要素をすべて削除する場合は、clearメソッドを使用します。
hello_set = set( ['こんにちは', 'まいど', 'おっす', 'チャオ', 'ウィッス', 'こんにちは'] )
hello_set.clear()
print(hello_set)
for文とset型
set型の個々の要素を取り出すには、for文を使用します。for文はループ処理を行うための構文です。
a = set ( [1, 5, 2])
for x in a:
print (x)
以上、Pythonのset型とfor文の基本的な使い方について解説しました。これらの知識を活用して、より効率的なプログラミングを行いましょう。