[lang-ref] ( dict_reverse_lookup ) ( python )

def test_dict_reverse_lookup():
    # dict comprehension
    d = { 'A': 1, 'B': 2, 'C': 3, 'D': 2, 'E': 1 }

    reverse_dict = { v: k for k, v in d.items() }

    assert reverse_dict[3] == 'C'
    assert reverse_dict[1] == 'E'  # last one wins
def test_dict_reverse_lookup_alternative():
    # next((k for k, v in d.items() if v == x), default)
    d = { 'A': 1, 'B': 2, 'C': 3, 'D': 2 }

    key = next((k for k, v in d.items() if v == 2), None)
    assert key == 'B' # first one wins

    key = next((k for k, v in d.items() if v == 4), None)
    assert key is None  # not found: None is returned