Как вывести данные в функцию из словаря и списка в Python
Есть следующие данные:
documents = [{'type': 'passport', 'number': '2207 876234', 'name': 'Василий Гупкин'},
{'type': 'invoice', 'number': '11-2', 'name': 'Геннадий Покемонов'},
{'type': 'insurance', 'number': '10006', 'name': 'Аристарх Павлов'}]
и
directories = {
'1': ['2207876234', '11-2'],
'2': ['10006'],
'3': []
По условию задачи необходимо создать функцию l, которая выводит полную информацию по всем документам. Я сделала следующий код:
def all_l():
if command == 'l':
for k in documents:
print(' '.join(list(k.values())), "полка хранения:",list(directories.keys()))
По которой вывод:
passport 2207 876234 Василий Гупкин полка хранения: ['1', '2', '3']
invoice 11-2 Геннадий Покемонов полка хранения: ['1', '2', '3']
insurance 10006 Аристарх Павлов полка хранения: ['1', '2', '3']
Нужен вывод по условию задачи, чтобы выводилась конкретная полка, на которой хранится документ:
2207 876234, тип: passport, владелец: Василий Гупкин, полка хранения: 1
11-2, тип: invoice, владелец: Геннадий Покемонов, полка хранения: 1
10006, тип: insurance, владелец: Аристарх Павлов, полка хранения: 2
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Берите k['number'] и ищите в значениях словаря directories где есть такой номер. Найдёте - ключ словаря, соответствующий этому найденному значению и есть искомая полка. Полный код не пишу, всё-таки это учебное задание.
Дальше там можно оптимизировать (например, составить обратный словарь номер->полка, чтобы не искать в значениях, а получать номер полки моментально по ключу).