我有一个矩阵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(),但这是行不通的。
有人知道我可以解决这个问题吗?
答案 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
我希望这会有所帮助。