我想要定義一個過程,involved(courses, person)
,需要輸入一個課程結構和一個人,並返回一個字典,描述該人是所有課程參與TypeError:字符串索引必須是整數,而不是字符//使用字典
這裏是我的involved(courses, person)
功能:
def involved(courses, person):
for time1 in courses:
for course in courses[time1]:
for info in time1[course]:
print info
這裏是我的字典:
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'},
}
}
當我中號試圖測試我的代碼:
>>>print involved(courses, 'Dave')
的Python給我一個錯誤:
for info in time1[course]:
TypeError: string indices must be integers, not str
我該如何解決呢?
謝謝。
如果您不需要密鑰,則可以使用[itervalues](http://docs.python.org/2/library/stdtypes.html#dict.itervalues)。 – Matthias
是的,謝謝你的補充,我不知道OP是否要使用密鑰,但我應該注意到, –