If you really want to do this with your data structure, you could do something like:
from collections import defaultdict
for k, lst in d.iteritems():
counts = defaultdict(int)
for i in range(0, len(lst), 3):
counts[lst[i]] += lst[i + 2]
print k, ", ".join(["%s %d" % (n, c) for n, c in counts.items()])
However, a better idea would be to store the data in a sensible data structure. Storing information in lists with rules like "Each list comes in groups of threes, where the first of each three is the name etc" makes working with the data clumsy and counterintuitive. Instead, what if you stored the data as:
d = {'a': {'Adam': {'Book': 4}},
'b': {'Bill': {'TV': 6, 'Computer': 5}, 'Jill': {'Sports': 1}},
'c': {'Bill': {'Sports': 3}},
'd': {'Quin': {'Computer': 3}, 'Adam': {'TV': 3}},
'e': {'Quin': {'TV': 2, 'Book': 5}},
'f': {'Adam': {'Computer': 7}}}
Then, you could answer the question like this:
for k, v in d.items():
print k, ", ".join(["%s %d" % (n, sum(a.values())) for n, a in v.items()])
This would have many other benefits as well: You could find out how many times Adam read a book in "a" just by doing d["a"]["Adam"]["Book"]
(or, if you're not sure that "Adam" or "Book" are there, d["a"].get("Adam", {}).get("Book", 0)
). Other calculations based on this list would also be possible and useful.