如何為字典列表中的元素添加值?

用戶3423407

這是我的字典

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章