ud课程:计算机导论19-involved,字典中循环

本文介绍了一种使用Python字典进行多层查询的方法,通过具体示例展示了如何查找特定教师教授的课程及其学期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    利用

         for <key> in <dictionary>:

                    <block>

结构,可以方便的在字典中多层查询值,并导出相关结果。

比如:

#    { <hexamester>, { <class>: { <property>: <value>, ... },
#                                     ... },
#      ... }


# For example,


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, 'Peter C.')

#>>> {'apr2012': ['cs262'], 'feb2012': ['cs101']}

官方答案是这样: 


也可写成这样:

def involved(courses, person):
    result = {}
    for c in courses:
        for a in courses[c]:
            for b in courses[c][a]:
                if courses[c][a][b] == person:
                    if c in result:
                        result[c].append(a)
                    else:
                        result[c] = [a]

    return result


但是,循环中的某一段,提出来的结果是不一样的。比如


def involved(courses, person):
    result = {}

    for c in courses:

        for a in courses[c]:
            return a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值