Help us understand the problem. What is going on with this article?

【Python】二次元リストを一次元リストに変換する方法

Pythonで二次元リストを一次元リストに変換したい場合がある。
sum関数を使えば一行で変換可能。

知らないと一見何をしている処理なのか分からないけど、使ってみると意外と便利。
三次元リストを一次元リストに変換したい場合はsum関数を二回使えばよい。

x = [[1, 2], [3, 4]]
x = sum(x, [])
print(x) # [1, 2, 3, 4]

y = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
y = sum(sum(y, []), [])
print(y) # [1, 2, 3, 4, 5, 6, 7, 8]

速度重視の場合はitertools.chain.from_iterable()を使う。
こちらの方がsum関数を使う場合よりも高速。

import itertools
x = [[1, 2], [3, 4]]
x = itertools.chain.from_iterable(x)
print(list(x)) # [1, 2, 3, 4]

y = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
y = itertools.chain.from_iterable(list(itertools.chain.from_iterable(y)))
print(list(y)) # [1, 2, 3, 4, 5, 6, 7, 8]

上記の他にも自作関数を作るという方法もある。
リストの次元数に依らないので、様々な次元数のデータを扱うときはオススメ。

https://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists

kenta1984
研究員、機械学習エンジニア。東芝、リクルート、クックパッドを経て、現在はグロービスAI経営教育研究所で機械学習、自然言語処理の研究開発に従事。
globis
グロービスは 1992 年の創業以来、社会人を対象とした MBA、人材育成の領域で Ed-Tech サービスを提供し、現在は日本 No.1 の実績があります。これらの資産と、さらに IT や AI を活用することで、アジア No.1 を目指しています。
http://www.globis.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした