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: []})}
结论
我们讨论了字典网格以探索解决此问题陈述的各种方法。此程序允许用户匹配来自单个列表的对应元素,并在字典中创建键值对。因此,这是一种构建相关数据的更简单方法。
广告