Добавление строк CSV в словарь позволяет только определенное количество элементов в словаре - PullRequest
0 голосов
/ 06 февраля 2019

Я создаю словарь из CSV-файла, который содержит около 14 тыс. Строк.Добавление строк к массиву работает так, что он добавляет все строки.Но когда я пытаюсь добавить в словарь, который я хочу, он только добавляет 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 голосов
/ 06 февраля 2019

Ключи словарей должны быть уникальными.Следовательно, наиболее вероятная причина заключается в том, что в locations.

имеются повторяющиеся значения. Для проверки используйте print(len(set(location))).Я подозреваю, что это напечатает 55.

0 голосов
/ 06 февраля 2019

Ключи Dict являются уникальными, и, присваивая новое значение существующему ключу, оно перезаписывает предыдущее значение ключа.Поскольку у вас, скорее всего, есть только 55 уникальных местоположений и несколько номеров для каждого местоположения, вы можете использовать вместо них список списков в качестве структуры данных:

for row in csvReader:
    dictionary.setdefault(row[3], []).append(row[11])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...