In [7]: my_dict = {"james": (0,"computer vision", "open cv", "image processing","python",'machine learnin
...: g'), "jhon": (0,"computer vision", "open cv", "image processing","python",'machine learning'),"Ra
...: jeev" : ("python","machine learning","nltk","nlp",1), "bapi": ( 0,"python","machine learning","nl
...: tk","nlp") }
In [8]: my_color = [0,"python","machine learning","nltk","nlp"]
In [9]: [ key for key, val in my_dict.items() if all( j in val for j in my_color ) ]
Out[9]: ['bapi']
In [10]:
Редактировать:
"все" принимает список, в котором все значения должны быть истинными, поскольку оно возвращает истину
for e.g. --> all( [True, True] ) will return True
where as --> all([True, False]) = will return False
, поэтому внутри всех, когда я делаю - -> если все (j в val для j в my_color)
в основном я проверяю, существует ли каждое значение в my_color в значении dictionary_item.
--> all( j in val for j in my_color )
will be equal to
--> all( (0 in val) , ('python' in val), ('machine learning' in val) ,('nltk' in val) , ('nlp' in val) )
, если все значения true тогда все вернет true