The dictionary itself doesn't have any features that allow you to search a key based on a value. All you can do is loop over every key/value and keep track of keys where the value meets your criteria. As the dictionary grows large, this operation will become more expensive.
a_dic = { "a" : [":D", ":)"], "b" : ["lol", "XD"], "c" : ["lol", ">:"], "d" : [":)", "XD"] } search_item = ":)" match_keys = [k for k,v in a_dic.items() if search_item in v] print(match_keys)
Output:['a', 'd']