きり丸の技術日記

技術検証したり、資格等をここに残していきます。

Pythonで初期配列をset型で作りたければbrace {} リスト型はbracket []

小ネタ。いつもset([data for data in datum])のように、List型を経由してたので、備忘録。なお、タイトルの出オチ記事です。

環境

  • Python
    • 3.8

対応

ブレース(brace, {})でくくると、set型になります。

ブラケット(bracket, [])でくくると、list型になります。

set_datum: set = {"A", "A", "B", "C"}
list_datum: list = ["A", "A", "B", "C"]

# わざわざ、listを経由する必要はない
set_constructor_datum: set = set(list_datum)

# これは同じもの
datum: list = ["A", "A", "B", "C"]
set([data for data in datum])
{data for data in datum}

公式引用

Use a comma-separated list of elements within braces: {'jack', 'sjoerd'}
Use a set comprehension: {c for c in 'abracadabra' if c not in 'abc'}
Use the type constructor: set(), set('foobar'), set(['a', 'b', 'foo'])

ソースコード

終わりに

普段、list型をメインで活用するので、set型はbraceでくくれば作れるということを知りませんでした。まぁ、pandasで操作している時に、項目をユニークにしたい時は、drop_duplicatesで間に合うことも多いのですが。

型情報が無い状態で実行すると、{}がsetで、[]がlistになるというのは、初心者には理解が難しい箇所かもしれませんが、覚えておくと便利だと思います。

参考情報