Я работаю со словарями, которые будут использоваться для отслеживания нескольких долларовых остатков. Для этого я использовал следующий словарь, содержащийся внутри класса:
principal = {"A": 2998.41, "B": 5794.58, "C": 3806.04, "D": 4190.39, "E": 4638.05, "F": 1827.17, "G": 4618.19, "H": 1737.77, }
priority = {"A": 6, "B": 5, "C": 2, "D": 1, "E": 4, "F": 3, "G": 8, "H": 7}
Они в конечном итоге достигнут нуля, но, поскольку это может происходить в разное время, мне нужен способ выяснить, какиеодин был оплачен, когда. Как часть функции класса, у меня есть следующий код:
for key, value in self.principal.items():
# Check to ensure a pmt would not cause a group's balance to be paid off and become negative.
# If it would, apply the excess to the next-highest priority group.
if (self.principal[key] * (1 + self.int_monthly[key])) - self.pmts[key] <= 0:
del (self.priority[self.groups[key]])
excess = round((self.pmts[key] - self.principal[key] * (1 + self.int_monthly[key])), 2)
print("Excess from group "+str(self.principal[key])+": $"+str(excess))
pmts и int_monthly также являются словарями, и вычисления работают нормально, потому что их значения извлекаются с помощью обращения к dict [ключ], но с удалениеми печатать заявления, например, я хочу знать, какой ключ был оплачен и удалить его из словаря, а не возвращать текущее значение этого ключа.
В существующем виде этот кодвыдает KeyError, потому что в словаре «priority» нет клавиши «D». В моей жизни ничего о словарях, кажется, не позволяло мне получить доступ к ключу на основе некоторого значения переменной, подобного этому.
Было бы легко, если бы я знал, к какому ключу я хотел бы обратиться заранее (я бы простоскажем self.principal ["ключ"]). Но я начинаю думать после просмотра здесь и Google, что не может быть способа сделать это, просто используя словари. Есть ли общее решение этой проблемы?