リストの整形

Concatenate list of lists into new list of lists – StackOverflow

このタイトル,なんかちょっとラノベみたい……と思った.

それはともかく.
これは,もっとシンプルに考えれば分かり易い.

行方向に纏めたい訳なので,リストをアンパック(*)して,纏める(zip).

lists = [
         [[],  []],
         [[3], [1]],
         [[],  [5]],
         [[2,5], []],
    ]

list(zip(*lists))

[([], [3], [], [2, 5]), ([], [1], [5], [])]

このままでは,「[]」が含まれる.なので,内包表記で整形する.

[[e for x in subli for e in x if x] for subli in zip(*lists)]

[[3, 2, 5], [1, 5]]

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中