使用字典的值打印键

时间:2020-04-19 08:21:13

标签: python python-3.x dictionary keras key

我有一个矩阵a=[0, 4, 8],在字典d = {"a":0, "b":1, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9, "j":10}中查找哪些键的值在矩阵a中。

我有以下代码:

for i in a:
    [key for key, value in d.items() if value == i]
    print(key)

但是,在运行此代码时,我收到以下消息:

ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()。

我曾尝试在数组后面添加.any()和.all(),但这是行不通的。

有人知道我可以解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

可能最简单:

for k, v in d.items():
    if v in a:
        print(k)

答案 1 :(得分:0)

您可以像这样重新格式化代码:

a = [0, 4, 8]
d = {"a":0, "b":1, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9, "j":10}

keys = [key for key in d.keys()if d[key] in a ]
print(keys)
# Output ['a', 'd', 'h']

答案 2 :(得分:0)

您可以通过索引方法获得给定

代码

a=[0, 4, 8]   #matrix a
d = {'a':0, 'b':1, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7, 'h':8, 'i':9, 'j':1}   #dictionary d

values = list(d.values())  #generating values list
keys = list(d.keys())    #generating keys list
for i in a:      #iterating over the elements of matrix or list a
    if i in values:    #chck whether the value in the dictionary
        print("Key for",i,"is",keys[values.index(i)])    #displaying result

输出:

Key for 0 is a
Key for 4 is d
Key for 8 is h

我希望这会有所帮助。