2013-05-20 52 views
0

我正在使用Python 2.7.4。我試圖比較python中兩個不同字典的值,並根據比較結果構建一個新的字典。 我的用戶輸入的支柱位置和mlodds1和馬匹的tbodds1到3所列出然後我做到以下幾點:在Python中比較2個字典的值並構造新的字典從比較

ml_dict = dict(zip(postpositions,mlodds1)) 
tb_dict = dict(zip(postpositions,tbodds1)) 

從這些名單構建兩個詞典。 我想要一個新的詞典:screened_dict[a,x]由tb_dict [a,x]和ml_dict(a,y)中的值x < y組成。提前致謝。

+0

我很難理解你在這裏想要什麼。你能否提供一個'ml_dict'和'tb_dict'的簡單例子,然後你想要'screened_dict'是什麼? – mgilson

+0

當然。職位=(1,2,3 ... 8),早晨線賠率由職業殘障人士設定。這些可能性,mlodds1是由用戶在我的程序中輸入一個列表mlodds1(2.5,4,6,8,10,15,20,25),它們表示賠率5/2,4/1等每個馬位置。圖板賠率tbodds1是作爲來自賽道上的圖騰板的實際賠率的列表輸入的,它可以是像(3,2,6,8,9,15,20,30)這樣的列表,其中字典是ml_dict = {1 :2.5,2:4,3:6,4:8,5:10,6:15,7:20,8:25}和tb_dict = {1:3,2:2,3:6,4:8 ,5:9,6:15,7:20,8:30},然後在這個特定的例子中screened_dict = {2:2,5:9,}。 – user1730419

回答

0
combined = {} 
for x in ml_dict: 
    try: 
     if tb_dict[x] < ml_dict[x]: combined[x] = ml_dict[x] 
    except KeyError: continue 
+0

這工作得很好!由於 – user1730419

+0

這裏是我是如何實現它:對於x在ml_dict: \t嘗試: \t \t如果tb_dict [X] user1730419