Ich arbeite an einem Programm, das eine imdb-Textdatei aufnimmt und die besten Schauspieler (nach Filmauftritten) basierend auf der Benutzereingabe N ausgibt.Elemente in der Tupel-Liste kombinieren?
Allerdings stoße ich auf ein Problem, bei dem ich Ich habe Slots von Schauspielern in der gleichen Menge von Filmen, die ich vermeiden muss. Wenn zwei Schauspieler in 5 Filmen sind, sollte zum Beispiel die Zahl 5 erscheinen und die Namen der Schauspieler sollten durch ein Semikolon getrennt sein.
Ich habe mehrere Umgehungslösungen ausprobiert und nichts hat noch funktioniert. Irgendwelche Vorschläge?
if __name__ == "__main__":
imdb_file = raw_input("Enter the name of the IMDB file ==> ").strip()
print imdb_file
N= input('Enter the number of top individuals ==> ')
print N
actors_to_movies = {}
for line in open(imdb_file):
words = line.strip().split('|')
actor = words[0].strip()
movie = words[1].strip()
if not actor in actors_to_movies:
actors_to_movies[actor] = set()
actors_to_movies[actor].add(movie)
movie_list= sorted(list(actors_to_movies[actor]))
#Arranges Dictionary into List of Tuples#
D = [ (x, actors_to_movies[x]) for x in actors_to_movies]
descending = sorted(D, key = lambda x: len(x[1]), reverse=True)
#Prints Tuples in Descending Order N number of times (User Input)#
for i in range(N):
print str(len(descending[i][1]))+':', descending[i][0]
alle Ihre Code verschachtelt unter 'wenn __name__ ==„__main __“:' bedeutet, dass Keine der Funktionalitäten ist verfügbar, wenn die Datei von einem anderen Skript importiert wird. – jDo