在Python中组合列表字典中的值

假设我们有一个python字典" title="python字典">python字典,其中包含键值对中的值列表。我们需要创建一个列表,该列表将表示给定列表中键和值的所有可能组合。

与分类和产品

来自itertools的乘积函数可用于创建提供给它的作为参数的iterable的克里特式积。我们对字典进行排序,并使用两个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函数以及itertools产品函数来创建所有可能的键和值的组合,形成列表的字典。

示例

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'}]]

以上是 在Python中组合列表字典中的值 的全部内容, 来源链接: utcz.com/z/322340.html

回到顶部