Получение данных из двух словарей

Тамара

Новичок
Пользователь
Мар 26, 2021
2
0
1
Всем добрый день! Искала среди уже готовых ответов - не нашла решения, к сожалению. Помогите, пожалуйста.
Есть задача
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': []
}

Необходимо при вводе команды "j" выводить полную информацию по документам и полкам:
№: 2207 876234, тип: passport, владелец: Василий Гупкин, полка хранения: 1
№: 11-2, тип: invoice, владелец: Геннадий Покемонов, полка хранения: 1
№: 10006, тип: insurance, владелец: Аристарх Павлов, полка хранения: 2
Все данные, кроме полки вывела. Не могу пока сообразить как вывести полки в соответствии с владельцами документов.
elif user_input=='j':
for document in documents:
print('Тип документа: ', document['type'], 'Номер: ', document['number'], 'ФИО: ', document['name'])

Как вывести полку в соответствии с номером документа? Перебрать циклом?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
968
219
43
20
Москва
Да, перебрать циклом, хотя лучше по возможности или сразу создавать словарь directories где ключами будут не номера полок а номера документов, или в начале программы запустить цикл:
Python:
dir = dict()
for k in directories.items():
    for i in k[1]:
        dir[i] = k[0]
у словаря dir ключами будут номера документов, а значениями - полки
 
  • Мне нравится
Реакции: Тамара

Тамара

Новичок
Пользователь
Мар 26, 2021
2
0
1
Спасибо!
Да, перебрать циклом, хотя лучше по возможности или сразу создавать словарь directories где ключами будут не номера полок а номера документов, или в начале программы запустить цикл:
Python:
dir = dict()
for k in directories.items():
    for i in k[1]:
        dir[i] = k[0]
у словаря dir ключами будут номера документов, а значениями - полки
 

Форум IT Специалистов