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