Создать вложенный диктовку неизвестной глубины и инициализировать самый внутренний ключ в виде списка? - PullRequest
0 голосов
/ 08 июня 2018

Я хочу создать диктовку неизвестной глубины и инициализировать самый внутренний ключ в виде списка вместо диктата.

Код, который я использую сейчас (работает):

nested_dict = lambda: defaultdict(nested_dict)
inputdict = nested_dict()

with open('inputdata.txt','r') as inputfile:
    inputobject = csv.DictReader(inputfile,delimiter=' ',skipinitialspace=True)
    for row in inputobject:

        try: inputdict[row['platform']][row['sensor']]['time'].append(float(row['time']))
        except AttributeError: inputdict[row['platform']][row['sensor']]['time'] = [float(row['time'])]

        try: inputdict[row['platform']][row['sensor']]['w'].append(float(row['w']))
        except AttributeError: inputdict[row['platform']][row['sensor']]['w'] = [float(row['w'])]
        ...

Я хочу просто добавить или инициализировать inputdict[row['platform']][row['sensor']]['time'] и т. Д. Без попытки /, за исключением каждого столбца, который я хочу сохранить.Это возможно?Я просто хочу написать одну строку вместо двух, чтобы код выглядел лучше ...

Формат входных данных:

time ms platform sensor P/S w x y z nl ns conf flag1 flag2
581083200 29000 C 1 P -0.16900 0.22519 0.77034 -0.57209 0 52 2 11000001 11000000
581083200 29000 C 2 P 0.87761 -0.13123 -0.44549 0.11875 0 32 1 11000001 11000000
581083200 29000 C 3 P 0.66907 0.13427 0.46785 -0.56162 0 88 2 11000001 11000000
581083200 529000 C 1 P -0.16911 0.22505 0.77021 -0.57229 0 50 2 11000001 11000000
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...