Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのリストの辞書からの値を組み合わせる


キーと値のペアの値としてリストを含むPythonディクショナリがあるとします。指定されたリストのキーと値のすべての可能な組み合わせを表すリストを作成する必要があります。

並べ替えと製品を使用

itertoolsのproduct関数を使用して、パラメーターとして提供されたiterableのcrtesian製品を作成できます。辞書を並べ替え、2つのforループを使用して、辞書内のリストから可能なすべてのキーと値のペアの組み合わせを作成します。

import itertools as it
Adict = {
   "Day": ["Tue", "Wed"],
   "Time": ["2pm", "9am"],
}
# Sorting Adict
sorted_Adict = sorted(Adict)
# Using product after sorting
res = [dict(zip(sorted_Adict, prod))
   for prod in it.product(*(Adict[sorted_Adict]
      for sorted_Adict in sorted_Adict))]
# Printing output
print(res)

出力

上記のコードを実行すると、次の結果が得られます-

[{'Day': 'Tue', 'Time': '2pm'}, {'Day': 'Tue', 'Time': '9am'}, {'Day': 'Wed', 'Time': '2pm'}, {'Day': 'Wed', 'Time': '9am'}]

zip付き

このアプローチでは、zip関数とitertools product関数を使用して、リストのディクショナリから可能なすべてのキーと値の組み合わせを作成します。

import itertools as it
Adict = {
   "Day": ["Tue", "Wed"],
   "Time": ["2pm", "9am"],
}
# Sorting Adict
sorted_Adict = sorted(Adict)
# Using product after sorting
res = [[{key: value} for (key, value) in zip(Adict, values)]
   for values in it.product(*Adict.values())]
# Printing output
print(res)

出力

上記のコードを実行すると、次の結果が得られます-

[[{'Day': 'Tue'}, {'Time': '2pm'}], [{'Day': 'Tue'}, {'Time': '9am'}], [{'Day': 'Wed'}, {'Time': '2pm'}], [{'Day': 'Wed'}, {'Time': '9am'}]]

  1. Pythonディクショナリからすべての値のリストを取得するにはどうすればよいですか?

    辞書からすべてのキーのリストを取得するには、dict.values()関数を使用するだけです。 例 my_dict = {'name': 'TutorialsPoint', 'time': '15 years', 'location': 'India'} value_list = list(my_dict.values()) print(value_list) 出力 これにより、出力が得られます- ['TutorialsPoint', '15 years', &#

  2. Python辞書からすべてのキーのリストを取得するにはどうすればよいですか?

    辞書からすべてのキーのリストを取得するには、dict.keys()関数を使用するだけです。 例 my_dict = {'name': 'TutorialsPoint', 'time': '15 years', 'location': 'India'} key_list = list(my_dict.keys()) print(key_list) 出力 これにより、出力が得られます- ['name', 'time', 'location'] リスト内