繁体   English   中英

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

[英]Python Code Not Listing First Line in CSV File

我在 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”。 为什么?

因为您正在使用字典并且您有 row[5] 是重复的并被替换,从而通过您拥有的重复数量(减去一个)缩短您的列表。 字典中不能有 2 个相同的键。 那是非法的。 Python 通过用新值覆盖(替换)您拥有的键的值来静默处理。

例如

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM