在 Python 中组合列表中的字典值
pythonserver side programmingprogramming更新于 2026/1/13 4:28:17
假设我们有一个 Python 字典,其中的键值对值为列表。我们需要创建一个列表,该列表将表示给定列表中键和值的所有可能组合。
使用 sorted 和 product
itertools 中的 product 函数可用于创建作为参数提供给它的可迭代对象的 crtesian 乘积。我们对字典进行排序并使用两个 for 循环来创建字典中列表中所有可能的键值对的组合。
示例
import itertools as it
Adict = {
"Day": ["Tue", "Wed"],
"Time": ["2pm", "9am"],
}
# 排序 Adict
sorted_Adict = sorted(Adict)
# 排序后使用乘积
res = [dict(zip(sorted_Adict, prod))
for prod in it.product(*(Adict[sorted_Adict]
for sorted_Adict in sorted_Adict))]
# 打印输出
print(res)
输出
运行上述代码得到以下结果 −
[{'Day': 'Tue', 'Time': '2pm'}, {'Day': 'Tue', 'Time': '9am'}, {'Day': 'Wed', 'Time': '2pm'}, {'Day': 'Wed', 'Time': '9am'}]
使用 zip
在此方法中,我们使用 zip 函数以及 itertools 产品函数来创建列表字典中所有可能的键和值的组合。
示例
import itertools as it
Adict = {
"Day": ["Tue", "Wed"],
"Time": ["2pm", "9am"],
}
# 对 Adict 进行排序
sorted_Adict = sorted(Adict)
# 排序后使用产品
res = [[{key: value} for (key, value) in zip(Adict, values)]
for values in it.product(*Adict.values())]
# 打印输出
print(res)
输出
运行上述代码得到以下结果 −
[[{'Day': 'Tue'}, {'Time': '2pm'}], [{'Day': 'Tue'}, {'Time': '9am'}], [{'Day': 'Wed'}, {'Time': '2pm'}], [{'Day': 'Wed'}, {'Time': '9am'}]]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

