使用变量访问Python字典的键

时间:2019-09-29 20:31:22

标签: python dictionary key

我正在与将用于跟踪几个美元余额的字典一起工作。为此,我使用了包含在类中的以下字典:

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 [key]来拉取的,但是例如,对于delete和print语句,我想知道什么 key 已付款并从字典中将其删除,而不返回该键的当前值。

按现状,此代码将引发KeyError,因为字典“ priority”中没有“ D”键。对我而言,字典的所有内容似乎都不允许我基于这样的可变值来访问键。

如果我提前知道要访问哪个密钥,那将很容易(我只是说self.principal [“ key”])。但是,我在四处看看Google和Google之后开始思考,仅使用字典可能没有办法做到这一点。是否有解决此问题的常用解决方法?

1 个答案:

答案 0 :(得分:0)

您无法从值中获取字典的键,但是可以迭代dict值并在值与您的值匹配时返回键

示例:

d = {1:'one'}
a = 'one'
for key, value in d.items():
    if value = a:
    print(key)

输出:

1

键不存在