“”"
3.有一个字典列表如下:
portfolio = [
{‘name’: ‘IBM’, ‘shares’: 100, ‘price’: 91.1},
{‘name’: ‘AAPL’, ‘shares’: 50, ‘price’: 543.22},
{‘name’: ‘FB’, ‘shares’: 200, ‘price’: 21.09},
{‘name’: ‘HPQ’, ‘shares’: 35, ‘price’: 31.75},
{‘name’: ‘YHOO’, ‘shares’: 45, ‘price’: 16.35},
{‘name’: ‘ACME’, ‘shares’: 75, ‘price’: 115.65}
]
name代表品牌名,shares代表分享数量,price代表价格
问题:请编写一个程序,输出总价格最高的的前三个商品,如:
[{‘name’: ‘AAPL’, ‘price’: 543.22, ‘shares’: 50},
{‘name’: ‘ACME’, ‘price’: 115.65, ‘shares’: 75},
{‘name’: ‘IBM’, ‘price’: 91.1, ‘shares’: 100}]
“”"
代码如下
portfolio = [
{‘name’: ‘IBM’, ‘shares’: 100, ‘price’: 91.1},
{‘name’: ‘AAPL’, ‘shares’: 50, ‘price’: 543.22},
{‘name’: ‘FB’, ‘shares’: 200, ‘price’: 21.09},
{‘name’: ‘HPQ’, ‘shares’: 35, ‘price’: 31.75},
{‘name’: ‘YHOO’, ‘shares’: 45, ‘price’: 16.35},
{‘name’: ‘ACME’, ‘shares’: 75, ‘price’: 115.65}
]
ls1 = list()
ls2 = list()
for i in portfolio:
money = i[‘shares’] * i[‘price’]
ls1.append(money)
i[‘qian’] = money
ls1.sort()
ls1.reverse()
for j in ls1:
for k in portfolio:
for l in k.values():
if j == l:
ls2.append(k)
for i in ls2:
i.pop(‘qian’)
print(ls2[0:3])