Я хотел бы создать многоуровневый стиль perl в python, но я изо всех сил стараюсь это сделать.Многоуровневый словарь в python
Это то, что я пробовал:
import sys
import csv
import pprint
from collections import defaultdict
hash = defaultdict(dict)
FILE = csv.reader(open('dosageMP.txt', 'rU'), delimiter='\t')
FILE.next()
count = 0
for row in FILE:
if count < 10:
print row
hash[row[0]][row[10]][row[5]] = 1
count = count+1
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(hash)
Этот код, кажется, хорошо работать на уровне двух hash[row[0]][row[10]]
, но не будет работать на 3-х или 4-х уровнях.
Любая помощь была бы очень признательна, я новичок в python, поэтому я утверждаю, если это глупый вопрос. Я могу сделать это в perl, но не в python.
Выход я хотел бы это:
Center->ROOM1->EXAM1
->EXAM2
ROOM2->EXAM1
->EXAM2
->EXAM3
Center2->ROOM3->EXAM1
Какую структуру данных вы используете в списке 'ROOM_X_' или словаре? И что такое структура данных внутри 'dosageMP.txt'? – wanderlust
Логика должна быть одинаковой, будь то Perl или Python. Вы издевались над ним в Perl? –
В качестве примечания: вы не должны использовать переменную 'count'. Вместо этого используйте 'enumerate()'. https://docs.python.org/2/library/functions.html#enumerate – felixbr