将CSV行添加到字典仅允许将一定数量的项目添加到字典

时间:2019-02-05 23:34:35

标签: python list csv dictionary

我正在从包含约14k行的csv文件创建字典。 将行附加到数组的工作原理是发现它会附加所有行。 但是,当我尝试附加到我想要的字典时,它仅附加了55个项目。而且我不确定为什么会这样。位置是字符串,数字是字符串整数。

import csv

dictionary = {} #Length of dictionary is only 55
location = [] #Length of location and number is 13,792
number = []

with open('C:/Users/././.csv') as c:
    csvReader = csv.reader(c, delimiter=',')
    for row in csvReader:
        location.append(row[3])
        number.append(row[11])
        dictionary[row[3]] = row[11]

2 个答案:

答案 0 :(得分:1)

Dict键是唯一的,并且通过为现有键分配新值,它将覆盖键的先前值。由于您很可能只有55个唯一的位置,并且每个位置有多个数字,因此您可以使用列表的字典作为数据结构:

for row in csvReader:
    dictionary.setdefault(row[3], []).append(row[11])

答案 1 :(得分:0)

字典的键必须唯一。因此,最可能的原因是您在locations中有重复的值。

要对此进行测试,请使用print(len(set(location)))。我怀疑它将打印55