walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

Python3でIterableなオブジェクトの先頭にアスタリスクをつけてリストに入れる

具体的には、

[map(str, [1, 2, 3])]
# > [<map object at ...>]
[*map(str, [1, 2, 3])]
# > ['1', '2', '3']

という感じ。関数にリストを渡すとき、リストの先頭にアスタリスクを付けるとunpackされるのは有名らしい(今日知った)。

しかし、この場合はそれに該当しない気がするけど、何て呼ぶんだろう。

ちなみに

[range(3)]
# > [range(0, 3)]
[*range(3)]
# > [0, 1, 2]
[zip([1, 2], [3, 4])]
# > [<zip object at ...>]
[*zip([1, 2], [3, 4])]
# > [(1, 3), (2, 4)]

とかなので、iterableなオブジェクトのunpackなのかな、と。

元ネタは、ここで見たもの。

追記1

iterable unpackingで良いみたいですね。以下の記事がまとまっていて参考になりました。

qiita.com