Python代碼閱讀(第22篇):從源字典映射出新字典

Python 代碼閱讀合集介紹:為什么不推薦Python初學(xué)者直接看項目源碼

本篇閱讀的代碼基于輸入的源字典創(chuàng)建一個新的字典,保持key值不變,vaule值是源字典對應(yīng)vaule進(jìn)行映射獲得的。

本篇閱讀的代碼片段來自于30-seconds-of-python。

map_values

def map_values(obj, fn):
  ret = {}
  for key in obj.keys():
    ret[key] = fn(obj[key])
  return ret

# EXAMPLES
users = {
  'fred': { 'user': 'fred', 'age': 40 },
  'pebbles': { 'user': 'pebbles', 'age': 1 }
}

map_values(users, lambda u : u['age']) # {'fred': 40, 'pebbles': 1}

map_values函數(shù)輸入一個字典obj和映射fn,初始化一個新的字典,并針對輸入字典的每個k-v對,保持key值不變,使用映射fn計算新value值。

dict.keys()返回字典的key 組成的新視圖。

dict[key]返回key所對應(yīng)的value值。

dict[key] = valuedict[key]的值設(shè)置為value。

map_values函數(shù)首先新建了一個空字典ret,然后遍歷輸入字典的所有key,針對每個value使用映射fn獲取新的value,并將新字典的key設(shè)置成新的value。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容