我與此格式返回值的API工作:字典排序基於較低的字典值
raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]
我試圖用最高2「價值」迴歸的人的「姓名」:
result = ['Joe','Erica']
什麼是最有效的方法來完成這個?
我與此格式返回值的API工作:字典排序基於較低的字典值
raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]
我試圖用最高2「價值」迴歸的人的「姓名」:
result = ['Joe','Erica']
什麼是最有效的方法來完成這個?
raw = [{'Name': 'Erica','Value':12},{'Name':'Sam','Value':8},{'Name':'Joe','Value':60}]
raw.sort(key=lambda d: d['Value'], reverse=True)
result = []
for i in range(2):
result.append(raw[i]['Name'])
print(result) # => ['Joe', 'Erica']
打印(結果)
試試這個。
我正在使用Python 3.x +,並且在第2行的d中出現語法錯誤。我在這裏錯過了什麼? – NeverResting
我不知道,這段代碼適用於Python 2.7.10和3.5.0。你的版本是什麼,你可以在這裏評論這個錯誤嗎? –
你的*當前*方式在哪裏,你認爲它如何更有效?另外,你爲什麼認爲它需要? – jonrsharpe
爲什麼使用一個字典列表而不是單個字典將名稱映射到值? –
@tobias_k這是由API生成的結果(我不控制),因此是我必須使用的起始數據 – NeverResting