Ian*_*erg 2 python sorting dictionary list python-3.x
我无法将我的求和值从最高到最低排序.
dict设置如下:
dictionary = {name:[dollar amount 1, dollar amount 2, etc.]}
Run Code Online (Sandbox Code Playgroud)
我需要将美元金额相加并按降序打印结果(按总金额计算).
目前我用这个:
for pair in dictionary:
print(pair, f'{sum(dictionary[pair]):.2f}')
Run Code Online (Sandbox Code Playgroud)
我不知道现在在哪里或如何排序,我只是模糊地熟悉lambda的用法.
谢谢!
您可以使用字典理解,然后sorted通过for循环迭代:
from operator import itemgetter
# input dictionary; create new dictionary with values totalled
d = {'Joe': [5, 10, 15], 'Paul': [2, 5, 1], 'Andrew': [5, 20, 15]}
d_sums = {k: sum(v) for k, v in d.items()}
# sort by value descending and iterate, gives list of tuples
sums_sorted = sorted(d_sums.items(), key=itemgetter(1), reverse=True)
# iterate and print
for name, dollars in sums_sorted:
print(f'{name} {dollars}')
# Andrew 40
# Joe 30
# Paul 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |