Я хочу создать диктовку неизвестной глубины и инициализировать самый внутренний ключ в виде списка вместо диктата.
Код, который я использую сейчас (работает):
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
...