import csv
def load_kings(f):
a = []
with open(f, encoding='utf-8') as g:
h = csv.reader(g, delimiter=';')
next(h)
for i in h:
if not i:
continue
a.append((i[0], int(i[1]), int(i[2])))
return a
def _c(y):
return (y - 1) // 100 + 1
def filter_by_century(a, b):
c = []
for i in a:
d = _c(i[1])
e = _c(i[2])
if d <= b <= e:
c.append(i[0])
return sorted(c)
def longest_ruling(a, n):
b = [(i[0], i[2] - i[1]) for i in a]
b.sort(key=lambda x: (-x[1], x[0]))
return [i[0] for i in b[:n]]
def report(a):
b = len(a)
c = [i[2] - i[1] for i in a]
d = sum(c) // b
e = longest_ruling(a, 1)[0]
return f"Всего правителей: {b}\nСредняя длина правления: {d} лет\nСамый долгий правитель: {e}"