リストの中のリストを取り出す

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が取り出されています. これを繰り返すことで, リストが完成します.
以下の図のようなイメージを持って頂ければ大丈夫だと思います.

f:id:munemakun:20190608165031p:plain:w400