2016-07-30 59 views
0

需要一些幫助才能理解Python和get字典方法中的一些東西。python調用函數在字典中獲取方法代替默認值

假設我們有一些字典列表,我們需要進行一些數據轉換(例如,通過密鑰'name'獲取所有字典中的所有名稱)。如果在特定字典中找不到密鑰'name',我又該怎麼稱呼某些特定功能func(data)

def func(data): 
    # do smth with data that doesn't contain 'name' key in dict 
    return some_data 

def retrieve_data(value): 
    return ', '.join([v.get('name', func(v)) for v in value]) 

這種方法適用相當好,但就一個,我可以看到功能func(從retrieve_data)每次通話,即使關鍵'name'存在於字典。因爲它可以讓get甚至被調用之前評估

def retrieve_data(value): 
    return ', '.join([v['name'] if 'name' in v else func(v) for v in value]) 

在你的榜樣,每次的原因func被稱爲是:

回答

2

如果你想避免調用func如果字典包含值,您可以使用此。