Pythonでタプルのリストをリストのリストに変換する方法
Pythonでは、要素がタプルになっているリストを扱うことがあります。その後のデータ処理において、タプルのままでは扱いにくいケースも多く、リスト形式に変換してから処理を行いたい場面が出てきます。
この記事では、タプルのリストをリストのリスト(ネストされたリスト)に変換する代表的な2つの方法を、具体的なコード例とともに解説します。
方法1:リスト内包表記を使う
最もシンプルで直感的なのが、リスト内包表記を使う方法です。forループで各要素(タプル)を1つずつ取り出し、list()関数を適用することで、新しいリストを作成していきます。
コード例
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# 元のリスト
print("Given list : \n", listA)
res = [list(ele) for ele in listA]
# 変換結果
print("Final list: \n", res)実行結果
Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
[['Mon', 3], ['Wed', 4], ['Fri', 7, 'pm']]このように、各タプルが個別のリストに変換され、それらをまとめたリストのリストが生成されます。なお、タプル内の要素数が異なる場合でも問題なく変換できる点がポイントです。
方法2:map関数とlist関数を組み合わせる
もうひとつの方法は、map()関数とlist()関数を組み合わせるアプローチです。map(list, listA)によって外側のリストから取り出した各要素(タプル)にlist()関数を適用し、最後に全体をlist()で囲むことで、結果をリストとして取得できます。
コード例
listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
# 元のリスト
print("Given list : \n", listA)
res = list(map(list, listA))
# 変換結果
print("Final list: \n", res)実行結果
Given list :
[('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')]
Final list:
[['Mon', 3], ['Wed', 4], ['Fri', 7, 'pm']]まとめ
どちらの方法でも同じ結果が得られますが、一般的には以下のような使い分けが推奨されます。
- リスト内包表記: コードの意図が明確で読みやすく、Pythonらしい書き方です。可読性を重視するならこちらがおすすめです。
- map + list: 処理速度にわずかな優位性がある場合があり、既存のコードベースで関数型スタイルを採用している場合に適しています。
状況に応じて最適な方法を選択し、データ処理を効率化しましょう。
-
【Python】文字列のリストをリストのリスト(ネストしたリスト)に変換する方法
Pythonでは、文字列として格納された複数のリストを、実際の「リストのリスト」(ネストしたリスト構造)へ変換したい場面があります。例えば、[[0, 1, 2, 3], [Mon, Tue, Wed, Thu]] のような文字列のリストを、各要素が個別のリストになる形に整形するケースです。この記事では、文字列のリストをリストのリストへ変換する代表的な2つの方法を、サンプルコードと実行結果とともにわかりやすく解説します。方法1:strip()とsplit()を組み合わせるstrip()メソッドで文字列の前後にある角括弧 [] を取り除き、その後 split()メソッドでカンマ区切りに分割します。
-
Pythonで文字列のリストをリストのリスト(ネストしたリスト)に変換する方法
この記事では、文字列型のデータを含むリストから、リストのリスト(入れ子構造のリスト)を作成する方法を解説します。元のリストには、リスト形式の文字列が要素として格納されており、それらを個々の要素に分解して、真のリスト構造へと変換していきます。strip()とsplit()を使う方法まず紹介するのは、strip()とsplit()の2つのメソッドを組み合わせる方法です。strip()で各文字列から不要な角括弧「[ ]」を取り除き、その後split()を使ってカンマ区切りで要素を分割することで、リストのリストを生成できます。コード例list1 = [ [0, 1, 2, 3],[Mon, Tue,