python字典值的itertools产品

Posted

技术标签:

【中文标题】python字典值的itertools产品【英文标题】:itertools product of python dictionary values 【发布时间】:2016-11-29 15:46:48 【问题描述】:

我有一个 Python 字典,其中字符串作为键,numpy 数组作为值:

dictionary = 'first': np.array([1, 2]), 'second': np.array([3, 4])

现在我想使用itertools product 创建以下列表:

requested = [(1, 3), (1, 4), (2, 3), (2, 4)]

当传递给 product 的项目是 numpy 数组时,通常会这样做。

当我执行以下操作时:

list(product(list(dictionary.values())))

我得到以下输出:

[(array([3, 4]),), (array([1, 2]),)] 

【问题讨论】:

解压字典值:list(product(*dictionary.values())) 解决了,谢谢! 【参考方案1】:

itertools.product() 函数希望将参数解压缩到单独的参数中,而不是保存在单个映射视图中。使用* operator 进行解包:

>>> import numpy as np
>>> from itertools import product
>>> dictionary = 'first': np.array([1, 2]), 'second': np.array([3, 4])
>>> list(product(*dictionary.values()))
[(1, 3), (1, 4), (2, 3), (2, 4)]

【讨论】:

以上是关于python字典值的itertools产品的主要内容,如果未能解决你的问题,请参考以下文章

Python中的字典分组函数(groupby,itertools)

python itertools 具有绑定值的排列

为大型itertools产品实现内存高效的ThreadPool

Python进阶3

python itertools 产品重复到大

Python - 从包含值列表的字典中添加具有映射值的新列