Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Search Python dictionary where value is list

If I had a dictionary where the value was set to a list by default, how could I go about searching all of these lists in the dictionary for a certain term?

For Example:

textbooks = {"math":("red", "large"), "history":("brown", "old", "small")} 

With more terms and cases where the same thing might occur again, how could I say find all of the keys in which their value is a list containing "red"? In my example above, the only one I'd want it to find would be "math".

like image 294
cbbcbail Avatar asked Dec 21 '22 06:12

cbbcbail


1 Answers

[k for k, v in textbooks.iteritems() if 'red' in v]

It is Pythonic shorthand for

res = []
for key, val in textbooks.iteritems():
    if 'red' in val:
        res.append(key)

See list comprehension in Python documentation

like image 67
volcano Avatar answered Jan 03 '23 15:01

volcano