#setの特徴
1:setとはデータ型の1つ
2:データ型なので、タプルやリストを渡して作ることが出来る
3:値の重複がない
4:リストのようにindexの参照は出来ない
#setを用いたデータの作り方!
setにリストやタプル、また波括弧を渡すことで、作成することが出来ます!
#リストを引数にする場合
x = set([1,2,3])
print(x)
# {1, 2, 3}
#タプルを引数にする場合
x_ = set((1,2,3))
print(x_)
# {1, 2, 3}
#波括弧で囲った値を変数に代入する方法
a = {1,2,3}
print(a)
# {1, 2, 3}
#本当にsetなんていうデータ型があるか確認してみましょう!
#先ほど作成したx,x_という変数を使います!
print(type(x_))
# <class 'set'>
print(type(x_))
# <class 'set'>
print(type(a))
# <class 'set'>
クラスはset型となっているので、今までのデータ型とは違うみたいですね!
また、波括弧を変数に代入する方法は、@shiracamus さんにおしえて頂きました!
以前はset関数という名前で投稿していましたが、setは関数ではないようです!
setは型なので、厳密には関数ではなく、コンストラクタを呼び出してインスタンス生成してます。
他の言語なら new set(array)と書きます。
intやstrやlistも同じ。
関数とクラスを意識することなく使えるのがPythonのいいところですね。
shiracamusさん、ありがとうございますm(__)m
#次は本当に重複がないのか調べてみます!
y = set([1,2,2,3,3,3,4,4,4,4])
print(y)
#{1, 2, 3, 4}
本当に重複がないようです!
そのため、重複を削除したい場合にsetを使う場合もあるようです!
#index参照ができないか確認!
y = set([1,2,2,3,3,3,4,4,4,4])
print(y)
#{1, 2, 3, 4}
#yの二番目の要素を指定!
y[1]
"""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
"""
エラーが出ました!
set型の各要素を取り出したい場合はリストに直してindexを指定する場合やfor文で取得することも出来るようです
#リスト関数に渡して、indexを指定!
y = list(y)
y[1]
#2
#リスト内包表記でリストに直して、indexを指定!
[i for i in y][1]
#2
#おわりに
set同士の演算もあるみたいなんですが、まだ触れていないので、今回はここまで触れました!
イケてない書き方や、もっといい方法がある場合はおしえていただけますと幸いです!