Python 使用字典的值打印密钥

Python 使用字典的值打印密钥,python,python-3.x,dictionary,keras,key,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() 我已经尝试

我有一个矩阵
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(),但它不起作用

有人知道我如何解决这个问题吗?

可能是最简单的:

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

您可以按如下方式重新格式化代码:

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']

您可以通过索引方法获取给定值的

代码

输出:


我希望这会有帮助。

展示一个
a
的示例,我们可以在其中重新创建您遇到的错误。
a
i可分配吗?您没有分配该列表的任何位置。您可能希望附加到列表中。另外,
key
没有在任何地方定义,它只存在于列表comp中的本地名称空间中,因此不能从外部访问它,因为您声明字典是错误的。
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