我有一个这种格式的Python字典:
mongo = {
1: {'syno': ['a','b','c'], 'can': ['2','3','4']},
2 :{'syno': ['x','y','z'], 'can': ['6','7','8']},
}
我有一个名为syno_iter
的列表:
syno_iter = ['a','b','c','d','e']
使用syno_iter
中的单个值,假设为a
。我想获取can
中mongo{}
中的值,如果值a
中的值syno
可用,我们可以返回{{1} }}
我们无法知道mongo dict的键。此外,由于字典不可迭代,我们无法使用范围事物。
重申:
我想做这样的事情 -
can
for i in syno_iter: if i in (mongo.values('syno')): print mongo.values('can'(values()))
答案 0 :(得分:1)
您可以使用以下方式执行查找:
def get_syno_values(data, lookup):
for row in data.values():
if lookup in row['syno']:
return row['can']
mongo = {
1: {'syno': ['a', 'b', 'c'], 'can': ['2', '3', '4']},
2: {'syno': ['x', 'y', 'z'], 'can': ['6', '7', '8']}
}
syno_iter = ['a', 'b', 'c', 'd', 'e']
print(get_syno_values(mongo, 'a'))
print(get_syno_values(mongo, 'y'))
['2', '3', '4']
['6', '7', '8']