Pythonでリストのリストをセットのリストに変換する方法
Pythonでは、リストの中にさらにリストが入った「リストのリスト」を、各要素をセット(set)に変換した「セットのリスト」へ変換したいケースがあります。例えば、重複する要素を取り除きたい場合などです。このような場合には、組み込み関数である map、set、list を組み合わせて使うことで、簡潔に実現できます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [[2, 2, 2, 2], [1, 2, 1], [1, 2, 3], [1,1], [0]]
print("リストのリストは:")
print(my_list)
my_result = list(map(set, my_list))
print("変換後のリストは:")
print(my_result)出力結果
リストのリストは:
[[2, 2, 2, 2], [1, 2, 1], [1, 2, 3], [1, 1], [0]]
変換後のリストは:
[{2}, {1, 2}, {1, 2, 3}, {1}, {0}]処理の流れと解説
まず、複数のリストを要素として持つ「リストのリスト」を定義し、その内容をコンソールに表示します。
map(set, my_list)により、外側のリストの各要素(内側のリスト)に対してset関数が適用されます。これにより、各リストがセットに変換され、重複する要素が自動的に削除されます。mapオブジェクトはイテレータとして返されるため、list()で囲むことで通常のリスト形式に戻します。変換結果は変数
my_resultに代入されます。最後に、結果をコンソールに出力して確認します。
補足ポイント
セットは順序を持たないため、出力時の要素の並び順は環境によって異なる場合があります。
重複除去だけが目的で順序を維持したい場合は、
dict.fromkeys()を使う方法も検討するとよいでしょう。リスト内包表記を使って
[set(sub) for sub in my_list]と書くこともでき、こちらの方が可読性を好む開発者もいます。
-
【Python入門】リストを文字列に変換する4つの方法を徹底解説
本記事では、Pythonでリスト(list)型のデータを文字列(string)型に変換する方法について、代表的な4つのアプローチをサンプルコードとともにわかりやすく解説します。 問題設定 与えられたリストを、ひとつながりの文字列に変換することを目標とします。例えば、複数の文字列要素を持つリストを結合して、単一の文字列として扱いたいケースなどが該当します。 ここでは、以下の4つの異なるアプローチを順番に見ていきましょう。 方法1: 空の文字列への連結(forループ) 最も基本的な方法は、空の文字列を用意し、forループでリストの各要素を順番に連結していくやり方です。処理の流れが直感的で、初心者
-
Pythonリスト入門:作成から操作、削除まで徹底解説
このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧