from collections import defaultdict
from functools import partial
class_dict= defaultdict(partial(defaultdict,list))
sections = ['A', 'B', 'A', 'A', 'B']
students = ['Jack', 'Jim', 'Jack', 'Leena', 'Jim']
subjects = ['Maths', 'Biology', 'Chemistry', 'English', 'Physics']
for (section, student, subject) in zip(sections, students, subjects):
class_dict[section][student].append(subject)
print class_dict
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKY2xhc3NfZGljdD0gZGVmYXVsdGRpY3QocGFydGlhbChkZWZhdWx0ZGljdCxsaXN0KSkKCnNlY3Rpb25zID0gWydBJywgJ0InLCAnQScsICdBJywgJ0InXQpzdHVkZW50cyA9IFsnSmFjaycsICdKaW0nLCAnSmFjaycsICdMZWVuYScsICdKaW0nXQpzdWJqZWN0cyA9IFsnTWF0aHMnLCAnQmlvbG9neScsICdDaGVtaXN0cnknLCAnRW5nbGlzaCcsICdQaHlzaWNzJ10KCmZvciAoc2VjdGlvbiwgc3R1ZGVudCwgc3ViamVjdCkgaW4gemlwKHNlY3Rpb25zLCBzdHVkZW50cywgc3ViamVjdHMpOgogICAgY2xhc3NfZGljdFtzZWN0aW9uXVtzdHVkZW50XS5hcHBlbmQoc3ViamVjdCkKCnByaW50IGNsYXNzX2RpY3Q=
defaultdict(<functools.partial object at 0x839efa4>, {'A': defaultdict(<type 'list'>, {'Leena': ['English'], 'Jack': ['Maths', 'Chemistry']}), 'B': defaultdict(<type 'list'>, {'Jim': ['Biology', 'Physics']})})