Создание вложенных списков к именованным элементам массива

каким образом в Python можно реализовать редактируемый массив имен элементов (например, дома жилого комплекса) и для элементов присваивать редактируемые списки (например, номера квартир).
Необходимо иметь возможность как добавлять/убавлять количество "домов" так и кол-во "квартир" по конкретному дому, чтобы была возможность обращаться по конкретному имени дома и номеру квартиры и вытягивать присвоенное значение конкретной "квартире", например задолженность.

Итого, какими средствами можно добавить дома "Республики,2" с квартирой "квартиру 12а", задолженность 100 у.е. и потом в любой момент обратиться к этой квартире и узнать задолженность.

Может несколько криво объяснил, но надеюсь смысл понят.
Что то типа такого:

houses = ['Республики, 1', 'Республики, 2', 'Республики, 3']

appartments['Республики, 1'] = ['кв1', 'кв2']

debts['Республики, 1'['кв1']] = 100

print(houses['Республики, 1'['кв1']])

, должно быть 100


Ответы (1 шт):

Автор решения: Kostya_200808

Я бы использовал в таком случае словари. Я составил пример, в котором показано взаимодействие с словарём домов.

Houses = {
    "Первый дом":
        {
            "Квартира 1" : 100,
            "Квартира 3" : 300
        },
    
    "Второй дом":
        {
            "Квартира 2" : 0
        },
    
    "Третий дом":
        {
            "Квартира 228" : 0,
            "Квартира 6" : 0
        }
    }
    
print("В квартире 1 первого дома задолжность: " + str(Houses["Первый дом"]["Квартира 1"]))
print("В квартире 6 первого дома задолжность: " + str(Houses["Третий дом"]["Квартира 6"]))

print("Это нам не нужно.")
Houses["Третий дом"].pop("Квартира 6")
print("Хотя..." + "\n" + "В этом доме ещё не было задолжностей.")
Houses.pop("Третий дом")

print("Надо добавить новый дом.")
Houses["Сотый дом"] = {"Квартира 9" : 1024}

Вывод:

В квартире 1 первого дома задолжность: 100
В квартире 6 первого дома задолжность: 0
Это нам не нужно.
Хотя...
В этом доме ещё не было задолжностей.
Надо добавить новый дом.
→ Ссылка