def involved(courses, person):
return {t: [cn for cn, v in c.iteritems() if person in v.itervalues()]
for t, c in courses.iteritems()}
尽管这会返回空列表。如果这是个问题,请将代码简化为:
def involved(courses, person):
inv = {}
for term, course in courses.iteritems():
for course_name, info in course.iteritems():
if person in info.itervalues():
inv.setdefault(term, []).append(course_name)
return inv
您的
for term in courses
循环生成键;这里是字符串。因此,term
首先被分配给['apr2012', 'jan2044', 'feb2012']
中的一个键。在下一个循环循环遍历
term
中的字符,然后:如果
term
设置为apr2012
,则c
首先设置为a
。但是没有courses['apr2012']['a']
条目。在您可能希望循环相关的值:
^{pr2}$您可以使用嵌套在字典理解中的列表理解构建结果:
尽管这会返回空列表。如果这是个问题,请将代码简化为:
{cd3>删除所有前缀。在
相关问题 更多 >
编程相关推荐