在Python中的字典内查找Dictionary的值

时间:2018-02-16 06:54:33

标签: python dictionary

我有一个这种格式的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。我想获取canmongo{}中的值,如果值a中的值syno可用,我们可以返回{{1} }}

我们无法知道mongo dict的键。此外,由于字典不可迭代,我们无法使用范围事物。

重申:

我想做这样的事情 -

can
for i in syno_iter:
    if i in (mongo.values('syno')):
        print mongo.values('can'(values()))

1 个答案:

答案 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']
相关问题