我想在python中创建一个perl样式的多级字典,但是我正努力实现这一目标。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,所以我appologies,如果这是愚蠢的问题。我可以在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