如果我定義了以下字典,我可以使用函數(如max(), min(), numpy.mean(), numpy.median()
)計算關於adict所有鍵的鍵'avalue'的值的統計信息(即對於key1至key3)沒有首先將值附加到單獨的可迭代對象?在常用鍵名稱的值上使用函數
adict = {'key1':{'achar':'a','avalue':1},'key2':{'achar':'b','avalue':2},'key3':{'achar':c,'avalue':3}}
如果我定義了以下字典,我可以使用函數(如max(), min(), numpy.mean(), numpy.median()
)計算關於adict所有鍵的鍵'avalue'的值的統計信息(即對於key1至key3)沒有首先將值附加到單獨的可迭代對象?在常用鍵名稱的值上使用函數
adict = {'key1':{'achar':'a','avalue':1},'key2':{'achar':'b','avalue':2},'key3':{'achar':c,'avalue':3}}
我一步寫下面的步驟,希望你可以得到你的答案
>>> [ x for x in adict.keys() ]
['key3', 'key2', 'key1']
>>> [ adict[x] for x in adict.keys() ]
[{'achar': 'c', 'avalue': 3}, {'achar': 'b', 'avalue': 2}, {'achar': 'a', 'avalue': 1}]
>>> [ adict[x]['avalue'] for x in adict.keys() ]
[3, 2, 1]
>>> sum([ adict[x]['avalue'] for x in adict.keys() ])
6
''.keys()'這裏有一點很重要 - 字典的默認迭代器返回鍵 - 'for x in adict.keys()'與adict'中的for x相同。 –
完美。謝謝happydave,尤其是肖恩。我看它是如何工作的 – cdelsola
@Burhan Khalid謝謝你 –
你爲什麼不想要一個單獨迭代的對象?如果你使用一個生成器表達式,它應該和你能想到的其他東西一樣高效。 – happydave
例如'max(adict [k] ['avalue'] for k in adict.iterkeys())' – happydave