Start free

Intermediate · Dictionaries · 138 of 264

Average per student

Read scores; a student can appear several times. Print each student's average with one decimal, students in alphabetical order.

Input: n, then n lines "name score". Output: one line per student: <name> <average>

Examples

Input
4
ann 90
bob 70
ann 80
bob 75
Output
ann 85.0
bob 72.5
Input
1
zed 100
Output
zed 100.0

One more test checks other inputs when you press Check.

Stuck? The idea behind dictionaries

A dictionary links keys to values, like words to meanings: ages["Ann"] = 12. Looking up a key is fast, however big it is.

.get(key, 0) gives a default when the key isn't there; looping over a dictionary gives its keys, .items() gives keys and values together.

counts = {}
for word in input().split():
    counts[word] = counts.get(word, 0) + 1
for word, n in counts.items():
    print(word, n)

Watch for: Reading a key that isn't there stops the program with a KeyError: check with in, or use .get().

All the dictionaries exercises
Your code
Opening the code editor…
Python 3.14 in your browser
Output
Run shows what your program prints. Check tests it on every example and the hidden tests.

More dictionaries exercises