Поиск значения для словаря и вывод вложенного словаря, если значение находится внутри

Я ударился о стену.

Мне нужно найти определенное значение и вывести весь словарь, в котором находится это значение:

Это мой оригинальный словарь:

dictionary1={ "Perth":{"Division": "Perth","Staff number":10,"Year formed":1995},"Darwin":{"Division": "Darwin","Staff number":5,"Year formed":2000},"Brisbane":{"Division": "Brisbane","Staff number":15,"Year formed":1995}}

После вызова функции с аргументом 1995,year_formed_data(1995) вывод должен быть:

{1995:[{"Division": "Perth","Staff number":10,"Year formed":1995},{"Division": "Brisbane","Staff number":15,"Year formed":1995}]}

Аналогично, если:

year_formed_data(2000)

{2000:[{"Division": "Darwin","Staff number":5,"Year formed":2000}]}

Это мой код:

def year_formed_data(yr):
    year={}
    for business,data in dictionary1.items():
        if data ==yr:
            year[yr]={list({"Division": ,"Staff number": ,"Year formed": }
    print(year)
year_formed_data(1995)


      

Спасибо еще раз!

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
33
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Возможно, вы могли бы использовать collections.defaultdict:

from collections import defaultdict

DATA = {
    'Perth': {'Division': 'Perth', 'Staff number': 10, 'Year formed': 1995},
    'Darwin': {'Division': 'Darwin', 'Staff number': 5, 'Year formed': 2000},
    'Brisbane': {'Division': 'Brisbane', 'Staff number': 15, 'Year formed': 1995},
}

def year_formed_data(yr: int) -> dict:
    year_data = defaultdict(list)
    for city, data in DATA.items():
        if data['Year formed'] == yr:
            year_data[yr].append(data)
    return dict(year_data)

def main() -> None:
    print(f'{year_formed_data(1995) = }')
    print(f'{year_formed_data(2000) = }')
    print(f'{year_formed_data(2005) = }')

if __name__ == '__main__':
    main()

Выход:

year_formed_data(1995) = {1995: [{'Division': 'Perth', 'Staff number': 10, 'Year formed': 1995}, {'Division': 'Brisbane', 'Staff number': 15, 'Year formed': 1995}]}
year_formed_data(2000) = {2000: [{'Division': 'Darwin', 'Staff number': 5, 'Year formed': 2000}]}
year_formed_data(2005) = {}

Вот как вы можете это сделать. Вы можете увидеть закомментированные строки, чтобы понять свои ошибки. :

dictionary1={ "Perth":{"Division": "Perth","Staff number":10,"Year formed":1995},"Darwin":{"Division": "Darwin","Staff number":5,"Year formed":2000},"Brisbane":{"Division": "Brisbane","Staff number":15,"Year formed":1995}}

def year_formed_data(yr):
    year={}
    year[yr] = [] # Create a list for that particular year to store required data.
    for business, data in dictionary1.items():
        # data was in the form of a dictionary. You are required to extract `Year formed` from that.  
        if (data['Year formed'] == yr):
            # Append the Division, Staff, Year formed if yr matches.
            year[yr].append({"Division": data['Division'] ,"Staff number":  data['Staff number'], "Year formed":  data['Year formed']})

    print(year)
year_formed_data(1995)

Выход:

{1995: [{'Division': 'Perth', 'Staff number': 10, 'Year formed': 1995}, {'Division': 'Brisbane', 'Staff number': 15, 'Year formed': 1995}]}

Другие вопросы по теме