2017-05-20 100 views
0
countr={'517132': 2017, '1002063365': 116, '226022': 34, '51002': 3, '219006': 117, '222034': 45, '224032': 42, '517195': 103, '731120': 1516 
'3254':12,'456':11} 

r1=[224032, 517132, 226022, 1002063365, 222034, 219006, 517195, 35015, 731120, 51002] 
r={} 
for i in r1: 
r[i]=countr.get(i) 

我試圖讓新DIC 我的意思是,如果COUNTR鍵與R1值匹配蟒蛇如何匹配列表項

在新DIC r值增加的關鍵和COUNTR匹配DIC值價值作爲價值。 但我學習這段代碼的結果是None。

'224032':None, '517132'=None....'1002063365':None] 

有什麼辦法可以將dic值與list匹配嗎? 這是我想要的輸出

r=[517132': 2017, '1002063365': 116, '226022': 34, '51002': 3, '219006': 117, '222034': 45, '224032': 42, '517195': 103, '731120': 1516] 
+4

你的'dict'鍵是字符串...這就是爲什麼這是失敗。 –

+0

你能建議我該怎麼做? –

+0

你應該弄清楚,如果你想使用字符串或整數,然後使用適當的一個... –

回答

0

如果我得到它的權利,這是你想要什麼:

countr={'517132': 2017, '1002063365': 116, '226022': 34, '51002': 3, '219006': 117, '222034': 45 ,'224032': 42, '517195': 103, '731120': 1516, 
'3254':12,'456':11} 

r1=[224032, 517132, 226022, 1002063365, 222034, 219006, 517195, 35015, 731120, 51002] 
r={} 
for key in countr: 
    if key in str(r1): 
    r[key]=countr[key] 

print(r) 

輸出: {'517132': 2017, '1002063365': 116, '226022': 34, '51002': 3, '219006': 117, '222034': 45, '224032': 42, '517195': 103, '731120': 1516}

您可能還需要重新考慮,如果R1爲int或蜇到很多字典值

+0

對於'r1'而不是字典進行迭代可能更有意義,浪費的列表成員資格測試,你應該使用'countr.get' –

+0

謝謝!!!!! –

+0

如果'countr'鍵是r1元素的子字符串,'如果str(r1)中的鍵將失敗「。 –

0

您應該遍歷列表元素:

countr = {'517132': 2017, '1002063365': 116, '226022': 34, '51002': 3, '219006': 117, 
      '222034': 45, '224032': 42, '517195': 103, '731120': 1516, '3254': 12, '456': 11} 

r1 = [224032, 517132, 226022, 1002063365, 
     222034, 219006, 517195, 35015, 731120, 51002] 

print({k: countr[str(k)] for k in r1 if str(k) in countr}) 
# {224032: 42, 517132: 2017, 226022: 34, 1002063365: 116, 222034: 45, 219006: 117, 517195: 103, 731120: 1516, 51002: 3} 
print({k: countr.get(str(k)) for k in r1}) 
# {224032: 42, 517132: 2017, 226022: 34, 1002063365: 116, 222034: 45, 219006: 117, 517195: 103, 35015: None, 731120: 1516, 51002: 3} 

這種方式更快,更穩健。接受的答案將失敗,這個例子:

countr={'1': 2017, '2': 116} 
r1=[12]