Помогите с домашкой по Python, иначе пострадает мой монитор!
Вы работаете секретарем и вам постоянно приходят различные документы. Вы должны быть очень внимательны, чтобы не потерять ни один документ. Каталог документов хранится в следующем виде:
documents = [
{"type": "passport", "number": "2207 876234", "name": "Василий Гупкин"},
{"type": "invoice", "number": "11-2", "name": "Геннадий Покемонов"},
{"type": "insurance", "number": "10006", "name": "Аристарх Павлов"}]
Перечень полок, на которых находятся документы хранится в следующем виде:
directories = {
'1': ['2207 876234', '11-2'],
'2': ['10006'],
'3': []}
People_list это функция, команда, которая выведет список всех документов в формате passport "2207 876234" "Василий Гупкин". Как в эту функцию также добавить вывод полки, на которой лежит каждый документ ???
def people_list():
for persons in documents:
print('№:' + persons['number'] + ', тип:' + persons['type'] + ', владелец:' + persons['name'])
Ответы (1 шт):
Например, так. Хотя вариант я сделал довольно примитивный, по-хорошему надо сделать "обратный" словарь, где ключ - это номер книги, а значение - полка, и доставать данные оттуда просто по ключу. Ну и ещё у меня функция заточена под вариант, что один номер может быть на нескольких полках.
def get_shelf(num):
return ','.join([k for k,v in directories.items() if num in v])
def people_list():
for persons in documents:
print('Полка:' + get_shelf(persons['number']) + ', №:' + persons['number'] + ', тип:' + persons['type'] + ', владелец:' + persons['name'])
Вывод:
Полка:1, №:2207 876234, тип:passport, владелец:Василий Гупкин
Полка:1, №:11-2, тип:invoice, владелец:Геннадий Покемонов
Полка:2, №:10006, тип:insurance, владелец:Аристарх Павлов