這是我的字典
d={key1:['value1','value2','value3',...,'valuen'],
key2:['value1','value2','value3',...,'valuen'],..,
keyn:['value1','value2','value3',...,'valuen']}
我正在嘗試為上述每個值添加一個值,以使他低於所需的字典
d={key1:[['value1','matchedvalue1'],['value2','matchedvalue2'],['value3','matchedvalue3'],...,['valuen','matchedvaluen']],
key2:[['value1','matchedvalue1'],['value2','matchedvalue2'],['value3','matchedvalue3'],...,['valuen','matchedvaluen']],..,
keyn:[['value1','matchedvalue1'],['value2','matchedvalue2'],['value3','matchedvalue3'],...,['valuen','matchedvaluen']]}
這些匹配值*基本上是從另一個字典中檢索的,其中值*是鍵
所以
d2={value1:matchedvalue1,value2:matchedvalue2,value3:matchedvalue3,...,valuen:matchedvaluen}
現在我知道如何從這個 d2 dictioanry 中檢索值,但我正在努力將它添加到字典 d 的匹配鍵值索引的值中
for k,v in d.items():
for i,v in enumerate(d[k]):
d.update(k[i]=d2.get(x))
##throws error keyword can't be an expression
#or tried the below attempt
#if d2.get(v) is not None:
# d[k][i]=d[k][i]+','+d2.get(v)
#But this doesnt update the values of the key, it returns the same key-values in dictionary d
對於列表中的項目 - 創建新的對列表:
def pair_items(items, lookup):
return [[x, lookup.get(x)] for x in items]
順便說一句,根據項目是什麼,在 Python 中可能更典型的是將其設為元組列表: [(x, lookup.get(x)) for x in items]
然後有幾種方法可以做到這一點,或者創建一個新的數據結構而不改變任何東西:
d3 = {key: pair_items(value, d2) for key, value in d.items()}
或者,就地改變所有內容:
for value in d.values():
value[:] = pair_items(value, d2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句