首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在包含大量python值的字典中进行搜索

在包含大量python值的字典中进行搜索
EN

Stack Overflow用户
提问于 2018-05-29 07:55:31
回答 1查看 151关注 0票数 0

在下面的代码中,我展示了一个函数,它允许你将学生添加到字典(书)中,并以rut为关键字,我遇到的问题是,我试图创建一个函数,该函数可以按部门搜索,然后打印属于该部门的所有学生,基本上我问的是,如何搜索一个包含1个关键字的字典,该字典与许多值相关联,并且您想要搜索一个特定值,然后打印所有包含该值和信息的关键字?

代码语言:javascript
复制
book = {}


def add(rut, name, age, department):
    student = {}
    student['rut'] = rut
    student['name'] = name
    student['age'] = age
    student['department'] = department

    book[rut] = student


def printall():
    for rut in book:
        student = book[rut]
        print(student['rut'], student['name'], student['age'], student['department'])


def main():
    count = 0
    x = 0
    y = int(input("How many students will you add?: "))
    while count < y:
        print('Input data of the student: ', count+1)
        rut = input("rut: ")
        name = input("name: ")
        age = int(input("age: "))
        print("Department 1: RH, 2: Logistic, 3: Cleaners, 4: TI ")
        department = ''
        while x == 0:
            num_dept = int(input("department number: "))

            if num_dept == 1:
                department = "RH"
                x = 1
            elif num_dept == 2:
                department = "Logistic"
                x = 1
            elif num_dept == 3:
                department = "Mathematics"
                x = 1
            elif num_dept == 4:
                department = "TI"
                x = 1
            else:
                print('Error')
        x = 0
        add(rut, name, age, department)
        count = count + 1
    printall()


main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 08:00:24

您可以使用list comprehension

代码语言:javascript
复制
students = [student for student in book.values() 
            if student["department"] == desired_department]

这将给你一个列表,如果你愿意,你可以打印出来。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50574633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档