こんにちわ!この記事はPythonの初学者のための内容となっております。
今回の目的は、
- リストのアンパックってなんだ!?
- リストを個別に取り出す方法を知りたい!
- アンパックの方法をいろいろ知りたい!
という方向けの内容です。
また、前回は、モンテカルロ法で円周率の近似値を求めてみました。面白い内容なのであわせてどうぞ!
それでは頑張っていこう!
プログラミングスクールに関しては下の記事で詳しく記述しています。
こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。
リストのアンパックとは
リストの中身を個別に出力することです。例を見ていきましょう。
l = [1, 2, 3]
print(l)
# [1, 2, 3]
# ⇒ 「1 2 3」と出力したい!そのまま出力すると、リストであることを示す、「 [ ] 」も出力されてしまいます。
これを、「1 2 3」と出力されるようにリストをアンパックします。
アンパックの方法
愚直にアンパック
リストを示す「 [ ] 」を出力されないようにすればよいので以下の方法でできます。
l = [1, 2, 3]
print(l[0], l[1], l[2])
# 1 2 3他にもこのようにすることも可能です。
l = [1, 2, 3]
print(" ".join([str(i) for i in l]))
# 1 2 3他には、
l = [1, 2, 3]
s = ""
for i in l:
s += str(i) + " "
print(s[:-1])
# 1 2 3これらの方法は面倒で無駄な処理をしています。
もっと簡単に実装するにはリスト名の前に「 * 」を使うことで可能です。
「 * 」を使う手法
l = [1, 2, 3]
print(*l)
# 1 2 3楽ですね!以上!笑
関数と合わせて使う
関数の引数は3つありますが、リストをアンパックすることによって、固定数の引数を受け取る関数にも利用することが出来ます。この辺の使い方はキーワード引数と似ていますね!
def hoge(a, b, c):
print("a :", a, " b :", b, " c :", c)
l = [1, 2, 3]
hoge(*l)
# a : 1 b : 2 c : 3アンパックを用いるときは、リストの前に「 * 」を付ければ可能です。
すなわち、リストならば何でもできます。
print(range(1, 4))
# range(1, 4)
print(*range(1, 4))
# 1 2 3
def hoge():
return "abc"
print(*hoge())
# a b cなかなか便利ですよね!
まとめ
今回はリストのアンパックについての記述でした。
出力する際に、「 [] 」が邪魔だったことはありませんでしたか?今日からその問題も解決されました!「 * 」をリストの前に付けるだけでリストの要素を別々に分けてくれる便利な機能がありますので使いこなしていきたいですね!
今後も皆様に役に立つ情報を提供していきますのでよろしくお願いいたします!
本日の理解度調査

今日の最後に理解度調査をします!!
どうすれば正しくなるのか考えてみてね!!
Q. 次の出力結果が正しくなるように関数を呼び出せ。
def hoge(*animals):
for i, animal in enumerate(animals):
print(i, "番目の動物は", animal, "です。")
animals = ["犬", "猫", "鳥", "亀", "豚"]
# 「hoge()」関数を呼び出す。
"""
0 番目の動物は 犬 です。
1 番目の動物は 猫 です。
2 番目の動物は 鳥 です。
3 番目の動物は 亀 です。
4 番目の動物は 豚 です。
"""※「enumerate」は要素番号も考慮される文です。
※ この問題はとっても無駄な処理をしていますが、リストのアンパックの理解のためです。
可変長引数についてはこちらをどうぞ!

正解は。。。
hoge(*animals)わかったかな??正解出来たら今回の項目は完璧だね!!
最後まで記事を読んでいただきありがとうございます!
昔、自分が参考にしていたプログラミングについての書籍を紹介します。
非常にわかりやすい内容で、言語は「Java」ですが参考にしてみてください!
「Python」じゃないんかい!
プログラミングスクールに関しては下の記事で詳しく記述しています。
こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。
ナノトイラボ 
