使用循环创建python字典而不单独定义数据

时间:2013-04-01 19:33:59

标签: python dictionary

我正在尝试以这种方式创建字典:

有两组数据:之前和之后,每组都有100个元素(0到99)的数组

还有一个与之前和之后的每个组合相关联的值,它是一个大小为10000X1的向量。

我想创建一个字典,以便我可以使用字典键引用向量中的值。

e.g。 (3个元素而不是100个)

之前= ['0','1','2'],之后= ['0','1','2'],vector = [1 2 3 4 5 6 7 8 9],< / p>

字典输出应该是:

(0,0):1,(0,1):2,(0,2):3,(1,0):4,(1,1):5,(1,2):6 ,(2,0):7,(2,1):8,(2,2):9

我知道如何通过简单地定义键然后使用dict(zip())函数来为这么少数量的元素执行此操作,但是有更好的方法来执行这么大的集合。我正在考虑使用循环但似乎无法生成(0,0),(0,1),(0,2)....等作为键。

1 个答案:

答案 0 :(得分:2)

itertools.product(range(100), range(100))将为您提供一个迭代,它可以生成您需要的所有键,您可以itertools.izip使用目标向量来生成字典。