У меня есть текстовый файл с сотнями тысяч учеников и их рейтинги для определенных фильмов, организованных с первым словом, являющимся номером студента, вторым из которых является название фильма (с без пробелов), а третий является рейтинг они не дали фильм:Поддержание порядка в большом списке фильмов/оценок
student1000 Thor 1
student1001 Superbad -3
student1002 Prince_of_Persia:_The_Sands_of_Time 5
student1003 Old_School 3
student1004 Inception 5
student1005 Finding_Nemo 3
student1006 Tangled 5
Я хотел бы организовать их в словарь, чтобы я каждый студент отображается в списке их рейтингами фильмов, где рейтинги в том же порядке для каждого ученика. Другими словами, я хотел бы иметь это так:
{student1000 : [1, 3, -5, 0, 0, 3, 0,...]}
{student1001 : [0, 1, 0, 0, -3, 0, 1,...]}
Такое, что первый, второй, третий и т.д. оценки для каждого студента соответствуют тем же фильмам. Порядок абсолютно случайен для фильмов и номеров учеников, и у меня довольно много проблем с этим. Любая помощь в том, чтобы придумать что-то, что свести к минимуму сложность этой проблемы, было бы потрясающе.
Я закончил тем, что понял. Вот код, который я использовал для тех, кто интересно:
def get_movie_data(fileLoc):
movieDic = {}
movieList = set()
f = open(fileLoc)
setHold = set()
for line in f:
setHold.add(line.split()[1])
f.close()
movieList = sorted(setHold)
f = open(fileLoc)
for line in f:
hold = line.strip().split()
student = hold[0]
movie = hold[1]
rating = int(hold[2])
if student not in movieDic:
lst = [0]*len(movieList)
movieDic[student] = lst
hold2 = movieList.index(movie)
rate = movieDic[student]
rate[hold2] = rating
f.close()
return movieList, movieDic
Спасибо за помощь!
Похоже, это то, что я ищу.Тем не менее, переменная «оценки [ученик]» дает ошибку, когда я пытаюсь получить длину, потому что это Nonetype. Я не очень знаком с типами Python, но как я могу сообщить компьютеру, что это список? – weskpga
Если вы просто скажете оценки [student] = [] Это должно позволить python знать, что это список. Он должен создавать экземпляр списка в цикле, если ученик не в рейтингах. Не могли бы вы рассказать немного больше о своей точной ошибке и реализации? –
Я понял это, как видно из моего редактирования. Спасибо за помощь! – weskpga