セットは要素の重複がないコンテナで、要素の順序もない。set
関数にリストを渡して生成する。
リスト = ['Python', 'Python', 'HTML', 'Java']
セット = set(リスト) # リストからセットを生成
print(セット) # {'HTML', 'Java', 'Python'} (実行ごとに順序が変わることも)
セットどうしで差分を取る(違いを調べる)などの演算ができる。
記号 | 例 | 意味 |
---|---|---|
- | a - b | bにはないaの要素 |
| | a | b | aまたはbの要素 |
& | a & b | aとbのどちらにもある要素 |
^ | a ^ b | aとbの片方にだけある要素 |
セット1 = set(['Python', 'HTML', 'Java'])
セット2 = set(['Python', 'Ruby'])
print(セット1 - セット2) # {'Java', 'HTML'}
print(セット1 | セット2) # {'Java', 'HTML', 'Ruby', 'Python'}
print(セット1 & セット2) # {'Python'}
print(セット1 ^ セット2) # {'Java', 'HTML', 'Ruby'}
ある要素がセットに含まれているか確認するには、要素 in セット
や要素 not in セット
を使う。
セット = set(['Python', 'Java'])
print('Python' in セット) # True
print('Python' not in セット) # False
セットに要素を追加するには、add
メソッド。
セット = set(['Python', 'Java'])
セット.add('Ruby')
print(セット) # {'Python', 'Java', 'Ruby'}
セットに要素を削除するには、remove
メソッド。
セット = set(['Python', 'Java'])
セット.remove('Python')
print(セット) # {'Java'}
セットの要素を順次処理していくには、リストと同様にfor
文を使う。
リスト = ['Python', 'Python', 'HTML', 'Java']
セット = set(リスト) # リストからセットを生成
for 要素 in セット:
print(要素)
リスト = ['Python', 'Python', 'HTML', 'Java']
セット = set(リスト) # リストからセットを生成
for インデックス, 要素 in enumerate(セット):
print(インデックス, 要素)
セットの要素は順序が保証されていないので、これらの出力はバラバラ。