如何根据另一个键的值在字典中选择键的值

时间:2019-12-04 22:42:26

标签: python dictionary

在以下字典中:

dic = {'x':[1, 2, 3], 'y':[11, 12 , 13]}

当与键2对应的列表元素为'x'时,我想从与键'y'对应的列表中检索值12。 / p>

2 个答案:

答案 0 :(得分:2)

一种灵活的解决方案是根据dic中的值创建一个查找字典:

>>> dic = {'x':[1, 2, 3], 'y':[11, 12 , 13]}
>>> lookup = dict(zip(dic['y'], dic['x']))
>>> lookup
{11: 1, 12: 2, 13: 3}
>>> lookup[12]
2

答案 1 :(得分:1)

如果您想要基于给定x的位置的y,我建议使用zip()

def find_x(dic, target_y):
    pairs = zip(dic['x'], dic['y'])
    for x, y in pairs:
        if y == target_y:
            return x

实际上,如果您经常做这种事情。最好将x和y值存储为成对的列表(或字典或类对象),而不是将字典分别存储在x和y列表中。