Python - 字典列表的所有组合

当需要显示字典列表的所有组合时,使用简单的列表理解和 'zip' 方法以及 'product' 方法。

以下是相同的演示 -

示例

from itertools import product

my_list_1 = ["python", "is", "fun"]
my_list_2 = [24, 15]

print("第一个列表是:")
print(my_list_1)
print("第二个名单是:")
print(my_list_2)

temp = product(my_list_2, repeat = len(my_list_1))

my_result = [{key : value for (key , value) in zip(my_list_1, element)} for element in temp]

print("结果是:")
print(my_result)
输出结果
第一个列表是:
['python', 'is', 'fun']
第二个名单是:
[24, 15]
结果是:
[{'python': 24, 'is': 24, 'fun': 24}, {'python': 24, 'is': 24, 'fun': 15}, {'python': 24, 'is': 15, 'fun': 24}, {'python': 24, 'is': 15, 'fun': 15}, {'python': 15, 'is': 24, 'fun': 24}, {'python': 15, 'is': 24, 'fun': 15}, {'python': 15, 'is': 15, 'fun': 24}, {'python': 15, 'is': 15, 'fun': 15}]

解释

  • 所需的包被导入到环境中。

  • 两个列表被定义并显示在控制台上。

  • 两个列表的笛卡尔积是使用 'product' 方法计算的。

  • 这个结果被分配给一个变量。

  • 列表推导用于遍历列表,并使用第一个列表的元素和先前定义的变量的元素来创建字典。

  • 这被分配给一个变量。

  • 这是显示在控制台上的输出。