如何获取名称和首选项字符串并将它们添加到字典中,并将名称作为键?



我的代码现在看起来是这样的:

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解析器,但对于这种规模完全没有必要!希望能有所帮助

相关内容

  • 没有找到相关文章

最新更新