<p>以下是一些帮助您实现所需的查询:</p>
<pre><code>import itertools
Filme = {
'1': {'Titel': 'Titanic', 'Jahr': 1997, 'Wertung': 8, 'Preis': 30, 'Schauspielern': ["Leonardo Dicaprio", "Kate Winslet", "Gloria Stuart"]},
'2': {'Titel': 'Pulp Fiction', 'Jahr': 1994, 'Wertung': 9, 'Preis': 40, 'Schauspielern': ["Uma Thurman", "John Travolta", "Quentin Tarantion"]},
'3': {'Titel': 'Wings of Desire', 'Jahr': 1987, 'Wertung': 8, 'Preis': 40, 'Schauspielern': ["Bruno Ganz", "Peter Falk", "Otto Sander"]},
'4': {'Titel': 'London Has Fallen', 'Jahr': 2016, 'Wertung': 6, 'Preis': 20, 'Schauspielern': ["Gerald Butler", "Morgan Freeman", "Aaron Eckhart"]},
'5': {'Titel': 'Avatar', 'Jahr': 2009, 'Wertung': 8, 'Preis': 35, 'Schauspielern': ["Zoe Saldana", "Sigourney Weaver", "Sam Worthington"]},
'6': {'Titel': 'The Devil Wears Prada', 'Jahr': 2006, 'Wertung': 7, 'Preis': 20, 'Schauspielern': ["Meryl Streep", "Anne Hathaway", "Simon Baker"]},
'7': {'Titel': 'Submarine', 'Jahr': 2010, 'Wertung': 7, 'Preis': 20, 'Schauspielern': ["Craig Roberts", "Yasmin Paige", "Sally Hawkins"]},
'8': {'Titel': 'About Time', 'Jahr': 2013, 'Wertung': 8, 'Preis': 37, 'Schauspielern': ["Margot Robbie", "Rachel McAdams", "Domhnall Gleeson"]},
'9': {'Titel': 'Love, Rosie', 'Jahr': 2014, 'Wertung': 7, 'Preis': 25, 'Schauspielern': ["Lily Collins", "Sam Claflin", "Christian Cooke"]},
'10': {'Titel': 'Me Before You', 'Jahr': 2016, 'Wertung': 9, 'Preis': 45, 'Schauspielern': ["Emilia Clarke", "Sam Claflin", "Matthew Lewis"]}
}
def flatten_list(lst):
return list(
itertools.chain(*[([v] if isinstance(v, str) else v) for v in lst]))
def get_movies_by_actor(data, actor):
return [row['Titel'] for key, row in data.items() if actor in row['Schauspielern']]
def get_actors(data):
return set(flatten_list([row['Schauspielern'] for key, row in data.items()]))
for actor in sorted(get_actors(Filme)):
print('actor={: <20} films=[{}]'.format(
actor, ",".join(get_movies_by_actor(Filme, actor))))
</code></pre>
<p>输出:</p>
<pre><code>actor=Aaron Eckhart films=[London Has Fallen]
actor=Anne Hathaway films=[The Devil Wears Prada]
actor=Bruno Ganz films=[Wings of Desire]
actor=Christian Cooke films=[Love, Rosie]
actor=Craig Roberts films=[Submarine]
actor=Domhnall Gleeson films=[About Time]
actor=Emilia Clarke films=[Me Before You]
actor=Gerald Butler films=[London Has Fallen]
actor=Gloria Stuart films=[Titanic]
actor=John Travolta films=[Pulp Fiction]
actor=Kate Winslet films=[Titanic]
actor=Leonardo Dicaprio films=[Titanic]
actor=Lily Collins films=[Love, Rosie]
actor=Margot Robbie films=[About Time]
actor=Matthew Lewis films=[Me Before You]
actor=Meryl Streep films=[The Devil Wears Prada]
actor=Morgan Freeman films=[London Has Fallen]
actor=Otto Sander films=[Wings of Desire]
actor=Peter Falk films=[Wings of Desire]
actor=Quentin Tarantion films=[Pulp Fiction]
actor=Rachel McAdams films=[About Time]
actor=Sally Hawkins films=[Submarine]
actor=Sam Claflin films=[Love, Rosie,Me Before You]
actor=Sam Worthington films=[Avatar]
actor=Sigourney Weaver films=[Avatar]
actor=Simon Baker films=[The Devil Wears Prada]
actor=Uma Thurman films=[Pulp Fiction]
actor=Yasmin Paige films=[Submarine]
actor=Zoe Saldana films=[Avatar]
</code></pre>