我的代码现在看起来是这样的:
def read_in_movie_preference():
"""Read the move data, and return a
preference dictionary."""
preference = {}
movies = []
# write code here:
file_location="./data/"
f = open(file_location+"preference.csv","r")
df = f.readlines()
#names as keys and prefrences
for line in df:
name = line[1].strip("n").split(",")
prefs = line[2:].strip("n").split(",")
preference[line[1]] = line[2:]
#print(test)
#movie names`
movietitles = df[0].strip("n").split(",")
for movie in movietitles:
movie=movie.rstrip()
#can't seem to get rid of the spaces at the end
movies+=movietitles[2:]
print(movies)
return [movies, preference]
如果没有空格,我似乎无法将电影名称放入列表中& &;我也不能把名字和偏好添加到字典中…我应该用基本的蟒蛇而不是熊猫来完成这个任务。非常卡住将感谢任何帮助!
字典将以名称作为键,首选值以数字格式而不是字符串格式,因此理论上看起来像这样:关键:参照:丹尼斯,2010年10月10日等
[![输入图像描述][1][1]这是数据集的样子
这里是粘贴的数据:
所以这里的问题是你在数据的副本上使用rstrip
,但从未将其应用于原始数据。
for movie in movietitles:
movie=movie.rstrip() # Changes the (copy) of the data rather than the original
# We still need to apply this back to movietitles
有几个方法来解决这个问题!
# Using indexing
for _ in range(len(movietitles)):
movietitles[_] = movietitles[_].rstrip()
或者我们可以内联使用列表推导式
# Using list comprehension
movietitles = [movie.rstrip() for movie in movietitles]
正如另一个答案中所述,当处理csv数据时,建议使用csv解析器,但对于这种规模完全没有必要!希望能有所帮助
标题>