I am trying to define a procedure, involved(courses, person)
, that takes as input a courses structure and a person and returns a Dictionary that describes all the courses the person is involved in.
Here is my involved(courses, person)
function:
def involved(courses, person):for time1 in courses:for course in courses[time1]:for info in time1[course]:print info
Here is my dictionary:
courses = {'feb2012': { 'cs101': {'name': 'Building a Search Engine','teacher': 'Dave','assistant': 'Peter C.'},'cs373': {'name': 'Programming a Robotic Car','teacher': 'Sebastian','assistant': 'Andy'}},'apr2012': { 'cs101': {'name': 'Building a Search Engine','teacher': 'Dave','assistant': 'Sarah'},'cs212': {'name': 'The Design of Computer Programs','teacher': 'Peter N.','assistant': 'Andy','prereq': 'cs101'},'cs253': {'name': 'Web Application Engineering - Building a Blog','teacher': 'Steve','prereq': 'cs101'},'cs262': {'name': 'Programming Languages - Building a Web Browser','teacher': 'Wes','assistant': 'Peter C.','prereq': 'cs101'},'cs373': {'name': 'Programming a Robotic Car','teacher': 'Sebastian'},'cs387': {'name': 'Applied Cryptography','teacher': 'Dave'}},'jan2044': { 'cs001': {'name': 'Building a Quantum Holodeck','teacher': 'Dorina'},'cs003': {'name': 'Programming a Robotic Robotics Teacher','teacher': 'Jasper'},}}
When I'm trying to test my code:
>>>print involved(courses, 'Dave')
Python give me an error:
for info in time1[course]:
TypeError: string indices must be integers, not str
How can I fix that?
Thanks.