Python - K 列表字典网格

pythonserver side programmingprogramming更新于 2023/12/29 4:45:00

术语字典网格的定义是将每个键集的值对存储到字典中。将 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("字典网格的结果:\n", K)

输出

字典网格的结果:
{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("字典网格的结果:\n", K)

输出

字典网格的结果:
{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: []})}

结论

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


相关文章