Я работаю над программой, которая принимает текстовый файл imdb, и выводит верхних участников (по видам фильмов) на основе пользовательского ввода N.Объединить элементы в списке кортежей?
Однако я столкнулся с проблемой, у которого есть слоты, занятые актерами в том же количестве фильмов, которые мне нужно избегать. Скорее, если два актера находятся в 5 фильмах, например, должно появиться число 5, и имена актеров должны быть объединены, разделенные точкой с запятой.
Я пробовал много обходных решений, и ничего еще не сработало. Какие-либо предложения?
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]
Имея весь код вложен в 'если __name__ ==«__main __»:' означает, что ни одна из его функциональных возможностей не будет доступна, если файл будет импортирован другим сценарием. – jDo