图书借阅统计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
n = int(input())
books = {}
for _ in range(n):
    name, *clst = input().split()
    for i in range(0, len(clst), 2):
        b = clst[i]
        day = int(clst[i + 1])
        if b not in books:
            books[b] = {"days": 0, "names": []}
        books[b]["days"] += day
        books[b]["names"].append(name)

flag = 0
for x in sorted(
    books.items(), key=lambda x: (-x[1]["days"] / len(x[1]["names"]), x[0])
):
    bname = x[0]
    if len(x[1]["names"]) >= 2:
        flag = 1
        print(f"{bname} {x[1]['days']/len(x[1]['names']):.2f}", end=" ")
        for name in sorted(x[1]["names"]):
            print(name, end=" ")
        print()
if flag == 0:
    print("None")