隅歩つ

書いて理解を深める

Pythonの set型

AtCoderのABC287のB問題でリスト内のダブりをなくす作業が必要だったのですが、全然思い出せなかった。

「set型」は理解しているつもりでした。

しかし使ったことがなかったら、すぐには出てきませんでした。

セット(集合)型

セット型はリストやタプルと同じような感じのようです。

リストと違うのは、順番がなかったり、ダブりもダメみたいです。

使い方

set型の使い方は、辞書のように{}で囲みます。

s = {'A', 'B', 'C'}
# {'B', 'A', 'C'}

set型は順番が変わってしまってます。

対してリストの場合は指定した順番で出ます。

l = ['A', 'B', 'C']
# ['A', 'B', 'C']

また、set型はダブりがある場合はダブり分が削除されます。

s = {'A', 'B', 'C', 'B'}
# {'B', 'A', 'C'}

リスト型にしたい場合はlist()に入れます。

l = list(s)
# ['B', 'A', 'C']

setのダブりをなくしたい場合は、list()に入れた後、setに戻します。

s = {'A', 'B', 'C', 'B'}
l = list(s)
s = set(l)
# {'A', 'B', 'C'}

Webでは、set型の中にリストを入れているのをよく見ます。

set(['A', 'B', 'C', 'B'])
# {'A', 'B', 'C'}

この使われ方が多いんですかね?

setにはadd,remove,pop,clearなどあるようです。理解したら追記します。