2016-06-07 57 views
0

我意识到你可能会很快将这个标记为重复,但我已经查找并找不到任何东西来帮助特定的问题我正在生成我之间的哈希映射名单。从两个列表创建一个哈希映射

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

我的目标是创建窗体的哈希地图:

{'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}

由于我正在处理很多很多变量,而且我不想手动输入我的哈希映射,所以我正在寻找一个函数来处理这个问题。我所构建的那个似乎并不记得它的值是整数。

回答

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)