Python 交互矩阵分组

Python 交互矩阵分组

交互矩阵分组是指两个不同列表的集合,其中第一个元素的子列表将被视为共同匹配项,如果找到匹配项,则将第一个元素作为字典键,并为其余两个元素设置矩阵分组。在Python中,我们有一些内置函数,例如setdefault(),defaultdict()和append(),将用于解决Inter Matrix Grouping问题。

让我们来看个例子。

给定两个列表:

list_1 = [[1, 2], [3, 4], [4, 5], [5, 6]]

list_2 = [[5, 60], [1, 22], [4, 59], [3, 14]]

因此,最终输出为{1:[2, 22],3:[4, 14],4:[5, 59],5:[6, 60]}

语法

以下示例中使用了以下语法-

setdefault()

setdefault是Python中的内置函数,用于返回具有特定键的元素。

append()

append()是Python中的内置函数,它将元素插入到列表的末尾。

defaultdict()

defaultdict()是Python中的一个内置函数,它可以自动生成键值对中的键和默认值。这个函数帮助处理字典中缺失的键。

使用setdefault()函数

在下面的例子中,程序使用递归函数来接受两个不同的列表,用于计算交互矩阵分组。接下来,它将使用空字典作为最终结果的输出结果。继续使用for循环来遍历并合并两个输入列表,并使用内置的setdefault()和append()函数来设置键作为单个元素,并将值设置为矩阵分组。通过函数返回,它生成结果字典。

示例

def int_grp_matrix(l1, l2):
    result = {}
    for key, value in l1 + l2:
        result.setdefault(key, []).append(value)
    return result
list1 = [[20, 0], [40, 200], [60, 300]]
list2 = [[40, 500], [60, 50], [20, 100]]
res = int_grp_matrix(list1, list2)
print("Inter Matrix grouping result:\n", res)

输出

Inter Matrix grouping result: 
{20: [0, 100], 40: [200, 500], 60: [300, 50]}

使用defaultdict()函数

在下面的例子中,我们将从一个递归函数开始,该函数调用自身并接受两个参数− l1和l2来接收输入列表的值。然后使用内置函数defaultdict(list),如果第一个元素的输入列表不满足普通匹配的要求,则处理缺失的键并将其存储在变量result中。接下来,它使用for循环遍历并串联两个输入列表。然后,变量result将参数设置为键,对于值对,它将使用内置函数append()来插入矩阵分组。最后,我们使用内置函数dict()和函数return来将变量result的值转换为字典形式。

示例

from collections import defaultdict
def int_grp_matrix(l1, l2):
    result = defaultdict(list)
    for key, value in l1 + l2:
        result[key].append(value)
    return dict(result)
list1 = [[20, 0], [40, 200], [60, 300]]
list2 = [[40, 500], [60, 50], [20, 100]]
res = int_grp_matrix(list1, list2)
print("Inter Matrix grouping result:\n", res)

输出

Inter Matrix grouping result: 
{20: [0, 100], 40: [200, 500], 60: [300, 50]}

使用字典和列表推导式

在下面的例子中,以递归函数开始程序,并设置一些条件和操作,例如合并两个不同的列表,空字典,循环和条件语句来计算Inter Matrix Grouping并打印输出结果。

示例

def int_grp_matrix(l1, l2):
    merge_list = l1 + l2
    result = {}
    for key, val in merge_list:
        if key in result:
            result[key].append(val)
        else:
            result[key] = [val]
    return result
list1 = [[20, 0], [40, 200], [60, 300]]
list2 = [[40, 500], [60, 50], [20, 100]]
res = int_grp_matrix(list1, list2)
print("The result of Inter Matrix Grouping:\n", res)

输出

The result of Inter Matrix Grouping: {20: [0, 100], 40: [200, 500], 60: [300, 50]}

结论

我们知道矩阵分组是指在字典中设置值对位置的整数元素的组合。上面的例子展示了初始化两个不同列表的方式,这意味着找到两个列表中第一个元素的共同匹配项,并将其转换为字典的键,并使用一些条件将值对设置为矩阵分组。这种类型的程序通常用于解决算法问题陈述。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程