Python - K列表字典网格


字典网格的定义是将每个键集的值对存储到字典中。将K列表包含在字典中意味着将列表作为值对插入。在Python中,我们有一些内置函数,例如defaultdict()和lambda将用于解决K列表字典网格问题。

让我们来看一个例子。

给定输入列表,

list1 = [10, 20, 30]
list2 = [40, 50]

最终输出变为

{10: {40: [], 50: []}, 20: {40: [], 50: []}, 30: {40: [], 50: []}}

语法

以下语法在示例中使用 -

lambda

lambda函数提供了一种使用lambda关键字声明简短匿名函数的快捷方式。lambda函数只包含简单的表达式。

defaultdict()

defaultdict()是Python中的一个内置函数,它创建一个简单的字典,但它使用集合模块进行初始化。

示例1:使用嵌套for循环

在以下示例中,我们将从将两个列表值分别存储在变量list1和list2中开始程序。然后将空字典存储在变量K中,这将创建字典形式的结果。然后使用for循环,其中变量i遍历第一个列表,即list1,并将元素设置为键,并将值设置为{}。接下来,使用另一个for循环遍历list2,并将二维数组设置为第一个列表的值,并显示输出。

示例

list1 = [3, 2]
list2 = [30, 20]
K = {}
for i in list1:
    K[i] = {}
    for j in list2:
        K[i][j] = []
print("Result of Dictionary Mesh:\n", K)

输出

Result of Dictionary Mesh:
 {3: {30: [], 20: []}, 2: {30: [], 20: []}}

示例2:使用字典推导和嵌套循环

在以下示例中,从创建各自变量的两个列表开始程序。然后使用字典推导,其中一个空列表和两个嵌套for循环遍历两个输入列表以概括结果。

示例

list1 = [1, 2, 3, 4]
list2 = [100, 200]
K = {i: {j: [] for j in list2} for i in list1}
print("Result of Dictionary Mesh:\n", K)

输出

Result of Dictionary Mesh:
 {1: {100: [], 200: []}, 2: {100: [], 200: []}, 3: {100: [], 200: []}, 4: {100: [], 200: []}}

示例3:使用collections模块中的defaultdict

在以下示例中,我们将从导入库collections中的defaultdict模块开始程序,该模块允许用户将默认值设置为键。然后在变量list1和list2中创建两个输入列表。接下来,定义内置函数defaultdict()和lambda来计算字典网格。继续使用遍历两个输入列表的嵌套for循环并找到结果。

示例

from collections import defaultdict
list1 = [10, 20, 30, 40, 50]
list2 = [5, 6, 7]
K = defaultdict(lambda: defaultdict(list))
for i in list1:
    for j in list2:
        K[i][j] = []
print(dict(K))

输出

{10: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 20: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 30: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 40: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 50: defaultdict(<class 'list'>, {5: [], 6: [], 7: []})}

结论

我们讨论了字典网格以探索解决此问题陈述的各种方法。此程序允许用户匹配来自单个列表的对应元素,并在字典中创建键值对。因此,这是一种构建相关数据的更简单方法。

更新于: 2023年8月17日

90次查看

开启您的职业生涯

通过完成课程获得认证

开始
广告