2020-01-21 15:35:58 +09:00
|
|
|
from operator import attrgetter
|
|
|
|
|
|
|
|
|
2022-05-14 12:57:27 -05:00
|
|
|
def ranker(iterable, key=attrgetter("points"), rank=0):
|
2020-01-21 15:35:58 +09:00
|
|
|
delta = 1
|
|
|
|
last = None
|
|
|
|
for item in iterable:
|
|
|
|
new = key(item)
|
|
|
|
if new != last:
|
|
|
|
rank += delta
|
|
|
|
delta = 0
|
|
|
|
delta += 1
|
|
|
|
yield rank, item
|
|
|
|
last = key(item)
|