リストの中のリストを取り出す
2重のリストをリストに変換
pythonで作業をしているときに, 意図せずに以下のような2重のリストになってしまう経験もあると思います.[[1,2],[3,4,5],[6,7,8,9]]
これだと何かと不便なので, リストに変換したいと思います!
[[1,2],[3,4,5],[6,7,8,9]] → [1,2,3,4,5,6,7,8,9]
以下のようにfor文のリスト内包表記を使えば簡単に変換できます.
lst = [[1,2],[3,4,5],[6,7,8,9]] new_lst = [b for a in lst for b in a] # new_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2つのfor文が書かれていますが, 例えば, 最初のfor文で[1, 2]が取り出され, 次のfor文で1, 2が取り出されています. これを繰り返すことで, リストが完成します.
以下の図のようなイメージを持って頂ければ大丈夫だと思います.