堆排序时,先按ctr从高到低排序,再按id从高到低排序
import heapq
from pprint import pprint
portfolio = [
{'id': 'b8d2623df99d', 'ctr': 0.0252},
{'id': '19373081d2bd', 'ctr': 0.1097},
{'id': '29373081d2bd', 'ctr': 0.1097},
{'id': '9bed5cee8a76', 'ctr': 0.0729},
{'id': 'bfc87af6e8b5', 'ctr': 0.0891},
{'id': '8c679a9a6a67', 'ctr': 0.0210},
{'id': '4ab89d6e9c83', 'ctr': 0.0595}
]
expensive = heapq.nlargest(3, portfolio, key=lambda s: (s['ctr'], s['id']))
print(expensive)
pprint(expensive)