I have a dictionary that has keys associated with lists.
mydict = {\'fruits\': [\'banana\', \'apple\', \'orange\'],
\'vegetables\': [\'pepper\', \'carr
You'll have to use a for, a simple if is not enough to check an unknown set of lists:
for key in mydict.keys():
if item in mydict[key]:
print key
An approach without an explicit for statement would be possible like this:
foundItems = (key for key, vals in mydict.items() if item in vals)
which returns all keys which are associated with item. But internally, there's still some kind of iteration going on.
mydict = {'fruits': ['banana', 'apple', 'orange'],
'vegetables': ['pepper', 'carrot'],
'cheese': ['swiss', 'cheddar', 'brie']}
item = "cheddar"
if item in mydict['cheese']:
print ("true")
this works, but you have to reference the keys in the dictionary like cheese, vegetables etc instead because of the way you made the dictionary, hope this helps!
mydict = {'fruits': ['banana', 'apple', 'orange'],
'vegetables': ['pepper', 'carrot'],
'cheese': ['swiss', 'cheddar', 'brie']}
item = "cheddar"
for key, values in mydict.iteritems():
if item in values:
print key
If you are going to do a lot of this kind of searching, I think you can create a reverse index for the original mydict to speed up querying:
reverse_index = {}
for k, values in mydict.iteritems():
for v in values:
reverse_index[v] = k
print reverse_index.get("cheddar")
print reverse_index.get("banana")
This way you don't have to traverse the values list every time to find an item.