2016-06-07 90 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)