擅长:python、mysql、java
<p>在功能上,你所要寻找的答案,似乎与你所寻找的答案有点不同。就我个人而言,我更愿意以更具活力的方式来做这件事。因为在我看来,你并不是真的知道要提前评级的电影,所以你必须对这一点做一些记录。在</p>
<pre><code>ratings = {}
allMovies = []
for line in file:
info = line.split(" ")
movie = info[1].strip().lower()
student = info[0].strip().lower()
rating = float(info[2].strip().lower())
if movie not in allMovies:
allMovies.append(movie)
movieIndex = allMovies.index(movie)
if student not in ratings:
ratings[student] = ([0]*(len(allMovies)-1)).append(rating)
else:
if len(allMovies) > len(ratings[student]):
ratings[student] = ratings[student].extend([0]*(len(allMovies)-len(ratings[student]))
ratings[student][movieIndex] = rating
</code></pre>
<p>这不是我解决这个问题的方法,但我认为这个解决方案最接近问题的初衷,如果内存有问题,你可以使用一个缓冲区来填充行,但是除非你的文件是几GB,否则这个问题不应该存在。在</p>