从两个列表创建某个哈希映射

时间:2016-06-07 20:15:30

标签: list python-2.7 function hashmap

我意识到您可能很快就会将此标记为重复,但我已经查看了,并且无法找到任何可以帮助解决我在生成哈希值之间的特定问题两个清单。

我正在处理许多变量,所以我会简化它:我有一个标签列表vars = ['L1', 'L2']。我想创建第二个列表values = [rL1, rL2],其中rL1rL2是分配给上述标签的随机(未知)整数,由(例如)rL1 = random.randit(0,10)定义。< / p>

我的目标是创建表单的哈希映射:

{'L1' : rL1, 'L2' : rL2}

请注意,值(整数)不应包含在引号中。

现在我有:

def genSampVal(vars):
     rL1 = random.randit(0,10)
     rL2 = random.randit(0,20)
     values = ["r" + vars[i] for i in xrange(0, len(vars))]
     print dict(zip(vars, values))
vars = ['L1', 'L2']
genSampVal(vars)

但是这给了我

{'L1' : 'rL1', 'L2' : 'rL2'}

我尝试过玩.join等等,但我找回了一些非常奇怪的东西。

非常感谢任何帮助!

编辑:为了向您展示我喜欢的内容,这是一个持续的例子。如果我自己创建哈希映射,我可以设置

map = {'L1' : rL1, 'L2' : rL2}

打印地图会产生类似

的内容

{'L1' : 8, 'L2' : 13}

由于我处理了很多很多变量,并且我不想手动手动输入我的哈希图,我正在寻找能够为我处理这个问题的函数。我构建的那个似乎并没有记住它的值是整数。

1 个答案:

答案 0 :(得分:0)

如果你的意思是{'L1':random_value,'L2':random_value},BTW就是random.randint

def genSampVal(vars):
    values = [random.randint(0,10) for i in xrange(len(vars))]
    return dict(zip(vars, values))


vars = ['L1', 'L2']
print genSampVal(vars)