基于关键字从dict的列表中提取数据的子集



这是我的数据结构-它是一个电影信息字典列表,其中包含标题、年份、类型等关键字。

这只是一个小样本。

{'Action': [{'title': 'They Live',
'year': 1988,
'genres': ['Action', 'Horror', 'Sci-Fi'],
'duration': 94,
'directors': ['John Carpenter'],
'actors': ['Roddy Piper', 'Keith David', 'Meg Foster'],
'rating': 7.3},
{'title': 'Ultra Warrior',
'year': 1990,
'genres': ['Action', 'Adventure', 'Sci-Fi'],
'duration': 81,
'directors': ['Augusto Tamayo San Román', 'Kevin Tent'],
'actors': ['Dack Rambo',
'Clare Beresford',
'Meshach Taylor',
'Mark Bringelson'],
'rating': 1.9},
{'title': 'Kick-Ass 2',
'year': 2013,
'genres': ['Action', 'Comedy', 'Crime'],
'duration': 103,
'directors': ['Jeff Wadlow'],
'actors': ['Aaron Taylor-Johnson', 'Chloë Grace Moretz'],
'rating': 6.5},.... 
'Drama': [{'title': 'Dirty Beautiful',
'year': 2015,
'genres': ['Comedy', 'Drama', 'Romance'],
'duration': 95,
'directors': ['Tim Bartell'],
'actors': ['Ricky Mabe', 'Jordan Monaghan', 'Conor Leslie', 'Darin Heames'],
'rating': 5.5},
{'title': 'Honeydripper',
'year': 2007,
'genres': ['Crime', 'Drama', 'History', 'Action', 'Adventure'],
'duration': 124,
'directors': ['John Sayles', 'Wachowskis'],
'actors': ['Danny Glover', 'LisaGay Hamilton', 'Yaya DaCosta'],
'rating': 6.6}, } 

根据有关控制器的信息(来自密钥:directors(,我需要提取一个子集数据。问题是,沃卓斯基夫妇执导的电影类型中既有"动作"又有"冒险",它们的片名是什么?输出应该是一个列表。

非常感谢您的帮助!!

您可以尝试列表理解:

action_adventure_wachowskis_movies = [
movie['title']
for genre in data
for movie in data[genre]
if 'Wachowskis' in movie['directors'] and
{'Action', 'Adventure'}.issubset(movie['genres'])
]
print(action_adventure_wachowskis_movies)

输出:

['Honeydripper']

最新更新