Поиск в словаре с большим количеством значений в Python - PullRequest
0 голосов
/ 29 мая 2018

В следующем коде я показываю функцию, которая позволяет добавлять учеников в словарь (книгу) с ключом к колеи, проблема в том, что я пытаюсь создать функцию, которая может выполнять поиск по отделу изатем распечатайте всех студентов, которые являются частью этого отдела, в основном я спрашиваю, как вы ищите словарь с 1 ключом, который связан с большим количеством значений, и вы хотите найти определенное значение, а затем распечатываете все ключи, которые имеютэто вместе с их информацией?

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()

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете использовать понимание списка .

students = [student for student in book.values() 
            if student["department"] == desired_department]

Это даст вам список, который вы сможете распечатать, если захотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...