1. 程式人生 > 其它 >Python程式碼閱讀(第22篇):從源字典映射出新字典

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

本篇閱讀的程式碼基於輸入的源字典建立一個新的字典,保持key值不變,vaule值是源字典對應vaule進行對映獲得的。 本篇閱讀的程式碼片段來自於30-seconds-of-python。

Python 程式碼閱讀合集介紹:為什麼不推薦Python初學者直接看專案原始碼

本篇閱讀的程式碼基於輸入的源字典建立一個新的字典,保持key值不變,vaule值是源字典對應vaule進行對映獲得的。

本篇閱讀的程式碼片段來自於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函式輸入一個字典obj和對映fn,初始化一個新的字典,並針對輸入字典的每個k-v對,保持key值不變,使用對映fn計算新value值。

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

dict[key]返回key所對應的value值。

dict[key] = valuedict[key]的值設定為value

map_values函式首先新建了一個空字典ret,然後遍歷輸入字典的所有key,針對每個value使用對映fn獲取新的value,並將新字典的key設定成新的value