Python代码未列出CSV文件中的第一行

时间:2015-10-18 01:37:29

标签: python csv

我正在研究IMDB电影列表,只是为了列出电影名称,链接和我的评分。这是代码:

import csv
r_list = open('ratings.csv')
rd = csv.reader(r_list, delimiter=',', quotechar='"')
movies = {}
for row in rd:
    movies[row[5]] = [row[0], row[8]]
print(len(movies))

输出为500但实际数字为501.它没有显示第一行。但是当我对包含总共6行的列表执行相同操作时,它会计算第一行并返回' 6'。 为什么呢?

1 个答案:

答案 0 :(得分:0)

因为您正在使用字典而且您的行[5]是重复的并且被替换,从而缩短了您的列表所需的重复数(减1)。字典中的2个键不能相同。这是非法的。 Python通过使用新值覆盖(替换)您的密钥值来静默处理。

e.g。

data = [('rambo', 1995), ('lethal weapon', 1992), ('rambo', 1980)]
movies = {}
for row in data:
    movies[row[0]] = row[1]

print len(data) # -> 3
print len(movies) # -> 2
print movies['rambo'] # -> 1980

如果您不希望重复的键互相替换,解决方法不是使用字典。