如何在一本字典中比较两个不同的值(数组)?

玛丽亚姆·起亚

我想比较字典中的两个值(它们是列表),如果它们至少有一个公共元素,我将它们的键作为元组。就我而言,(k1,k2) 和 (k2,k1) 之间没有区别。我这样做了。但问题是我的数据很大,而且这种方式很慢!

paths = {0:[1,2,3,4],1:[2,5,6],3:[5,8,9],4:[1,3,4]}
edges = []
for k1,v1 in paths.items():
        for k2,v2 in paths.items():
            if not k1 == k2:
                if [value for value in v1 if value in v2] != []:
                        edges.append((k1,k2))

我的愿望输出: [(0, 1), (0, 4), (1, 3)]

我从我的代码中得到的输出: [(0, 1), (0, 4), (1, 0), (1, 3), (3, 1), (4, 0)]

联合利华

使用itertools.combinations,每次比较仅以这种方式进行一次:

    import itertools
    paths = {0:[1,2,3,4],1:[2,5,6],3:[5,8,9],4:[1,3,4]}
    edges = []
    for ktuple in itertools.combinations(paths,2):
        if [value for value in paths[ktuple[0]] if value in paths[ktuple[1]]] != []:
            edges.append(ktuple)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一本字典与字典数组进行比较

将两个列表合并为一本字典

如何在一个表中比较两个具有相同值但效果不同的字段?

在一本中比较两本具有更多价值的字典

如何在javascript中比较两个数组的值

如何在C ++中比较两个char数组?

如何在Java中比较两个对象数组?

如何在javascript中比较两个对象数组?

如何在VBA中的不同工作表中比较两个值?

如何在两个不同的表中比较/匹配SQL Server中的值

如何在Java中比较两个double值?

如何在值中包含字符串的python3中比较两个嵌套字典的列表

如何在Swift中比较两个字典?

如何在C#中比较两个字典元组值

如何在一列中比较两个具有不同精度级别的数据框

如何在C#或Linq中比较两个大于或小于运算符值的字节数组?

将一本字典中的键与另一本字典中的值相关联

如何从数据框中删除一本字典

如何从for循环创建一本字典

如何将三个列表转换为一本字典?

如何在python中不同大小的两个数据帧中比较值对?

从另一本字典中按值获取一个字典的值时发生Keyerror

如何在MySQL中比较表的两个不同行

如何在Matlab中比较两个不同维数的矩阵并获得相等行的频率?

如何在 Laravel 中比较两个对象并获得不同的列

如何在python中比较两个不同的结构化Excel

如何在C#中比较两个不同类对象的相同属性?

在数组中比较:如果存在两个最大值,则比较另一个值

如何在两个不同的Excel工作表中比较两个单元格区域?