我正在从包含约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]
答案 0 :(得分:1)
Dict键是唯一的,并且通过为现有键分配新值,它将覆盖键的先前值。由于您很可能只有55个唯一的位置,并且每个位置有多个数字,因此您可以使用列表的字典作为数据结构:
for row in csvReader:
dictionary.setdefault(row[3], []).append(row[11])
答案 1 :(得分:0)
字典的键必须唯一。因此,最可能的原因是您在locations
中有重复的值。
要对此进行测试,请使用print(len(set(location)))
。我怀疑它将打印55
。