Pythonで辞書のリストからすべての一意の値を取得する方法
辞書のリストから重複を除いた一意の値をすべて取得したい場合、各辞書の値を順に取り出してセット(set)に変換します。セットは重複した要素を自動的に除去するため、その後リストに変換し直してコンソールに表示すれば、簡潔なコードで目的の結果を得ることができます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [{'hi' : 11, 'there' : 28}, {'how' : 11, 'are' : 31}, {'you' : 28, 'Will':31}]
print("リストの内容:")
print(my_list)
my_result = list(set(value for dic in my_list for value in dic.values()))
print("実行結果:")
print(my_result)
実行結果
リストの内容:
[{'there': 28, 'hi': 11}, {'how': 11, 'are': 31}, {'Will': 31, 'you': 28}]
実行結果:
[11, 28, 31]
コードの解説
まず、複数の辞書を含むリストを定義し、その内容をコンソールに表示します。
ジェネレーター式(内包表記)を使ってリストを反復処理し、各辞書の「値(values)」だけを取り出します。
取り出した値を
set()に渡すことで、重複する値が自動的に除去され、一意の値だけが残ります。さらに
list()でリストに変換し、変数 my_result に代入します。最後に、この結果をコンソールに出力しています。
なお、セットは要素の順序を保持しないため、出力される値の並び順は実行環境によって異なる場合があります。特定の順序で結果を表示したい場合は、sorted(my_result) のように sorted() 関数を組み合わせると便利です。
-
キーと値のリストからPython辞書(dict)を作成する方法
キーリストと値リストから辞書を作成する Pythonでは、キーを格納したリスト(L1)と、それに対応する値を格納したリスト(L2)が別々に用意されている場合でも、いくつかの簡単な方法で1つの辞書オブジェクトにまとめることができます。 ここでは、代表的な2つの方法を紹介します。 方法1:zip()関数とdict()関数を組み合わせる 最もシンプルで一般的なのが、zip()で2つのリストをペア化し、dict()関数で辞書に変換する方法です。 >>> L1 = [a,b,c,d] >>> L2 = [1,2,3,4] >>> d = dict(
-
Pythonの辞書からすべてのキーをリストとして取得する方法
Pythonの辞書(dict)からすべてのキーをリストとして取得したい場合、最もシンプルな方法は dict.keys() メソッドを使うことです。このメソッドは辞書内のすべてのキーを含むビューオブジェクトを返すため、list() で囲むことで簡単にリストへ変換できます。keys()メソッドを使う例my_dict = {name: TutorialsPoint, time: 15 years, location: India} key_list = list(my_dict.keys()) print(key_list)出力実行すると、次のような結果が得られます。[name, time, loc