在两个字典中匹配的所有键的值的乘积列表



我有两个字典形式的哈希表。键将功能映射到所述功能的出现列表。

a_dict = {'a': [1,2], 'b': [2,], 'c': [1,3]}
b_dict = {'a': [6], 'c': [4]}

我需要的是一个列表或理想的numpy数组,其中包含两个匹配特征的所有组合。在这个例子中:

result = [[1,6],
          [2,6],
          [1,4],
          [3,4]]

因为这在某种程度上应该在大字典上尽可能快地运行,我希望使用推导式,因为它们被cython理解。但他们只把我带到这里:

>>> [itertools.product(value, a_dict[key]) for key,value in b_dict.items()]
[<itertools.product object at 0x1004a2960>, <itertools.product object at 0x1004a29b0>]

谢谢你的帮助!

import numpy as np
import itertools
a_dict = {'a': [1,2], 'b': [2,], 'c': [1,3]}
b_dict = {'a': [6], 'c': [4]}
print(list(itertools.chain.from_iterable(
    itertools.product(value, b_dict[key]) for key,value in a_dict.iteritems()
    if key in b_dict)))
# [(1, 6), (2, 6), (1, 4), (3, 4)]

相关内容

  • 没有找到相关文章

最新更新