a={'id1'=1001,'id2'=1002,'id3'=1003,……,'id99'=1099}
b=[1003,1006,1009,1005]
我如何通过列表b去找到对应字典a中value的key呢?
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
a={'id1':1001,'id2':1002,'id3':1003,'id4':1004,'id5':1005,'id6':1006,'id7':1007,'id8':1008,'id9':1009,'id10':1010}
b=[1003,1006,1009,1005]
a2 = dict(zip(a.values(),a.keys()))
c = [a2[x] for x in b]
print(c)
就是先通过dict(zip(a.values(),a.keys()))把字典a中value和key交换一下,之后就好办了。
values = [a[key] for key in b]
可以使用filter进行查找,这种方法也适用于多个值,以及没有值的情况!
a = dict()
for i in range(100):
a[f'id{i}'] = 1000+i
a['id1066'] = 1006
a['id5'] = 1004
# print(a)
b = [x+1000 for x in [3, 6, 9, 5]]
# print(b)
# print(list(filter(lambda v: v[1] == b[0], a.items())))
for vb in b:
l = list(filter(lambda v: v[1] == vb, a.items()))
print(f"{vb} -> ", end='')
print(l, end=" -> ")
for i in l:
print(i[0], end=' ')
print()
运行结果:
1003 -> [('id3', 1003)] -> id3
1006 -> [('id6', 1006), ('id1066', 1006)] -> id6 id1066
1009 -> [('id9', 1009)] -> id9
1005 -> [] ->