Помогите решить задачку по питону!
Я работаю секретарём, и мне постоянно приходят различные документы. Я должен быть очень внимателен, чтобы не потерять ни один документ. Каталог документов хранится в следующем виде:
documents = [
{"type": "passport", "number": "2207 876234", "name": "Василий Гупкин"},
{"type": "invoice", "number": "11-2", "name": "Геннадий Покемонов"},
{"type": "insurance", "number": "10006", "name": "Аристарх Павлов"},
{"type": "driver license", "number": "5455 028765", "name": "Василий Иванов"},
]
Перечень полок, на которых находятся документы, хранится в следующем виде:
directories = {
'1': ['2207 876234', '11-2', '5455 028765'],
'2': ['10006'],
'3': []
}
Необходимо реализовать следующие функции.
get_name — функция. Принимает номер документа и выводит имя человека, которому он принадлежит. Если такого документа не существует вывести “Документ не найден”.
get_directory — функция. Принимает номер документа и выводит номер полки, на которой он находится. Если такой документ не найден на полках вывести “Полки с таким документом не найдено”.
add — функция, которая добавит новый документ в каталог и перечень полок.
В результате корректного выполнения задания будет выведен следующий результат:
Аристарх Павлов
1
Документ не найден
3
Александр Пушкин
Полки с таким документом не найдено
Уже битый час сижу и просто не понимаю, что делаю не так.
Мой код:
def get_name(doc_number):
for numbers in documents:
if numbers['number'] == doc_number:
return numbers['name']
return 'Документ не найден'
def get_directory(doc_number):
for shelf_number in directories:
if doc_number in directories.items():
return shelf_number(directories.items())
return 'Полки с таким документом не найдено'
def add(document_type, number, name, shelf_number: str):
d = {"title": document_type, "number": number, "name": name}
documents.append(d)
if shelf_number in directories.keys():
directories[str(shelf_number)].append(number)
return 'Документ добавлен'
else:
return 'Такой полки не существует'
И то, что выводит:
Документ добавлен
Аристарх Павлов
Полки с таким документом не найдено
Документ не найден
Полки с таким документом не найдено
Александр Пушкин
Полки с таким документом не найдено
Источник: Stack Overflow на русском