如何在python中创建和打印多级字典?

时间:2016-12-21 11:59:43

标签: python

需要数据结构:

Name -->gene1
             --> CDS
                     1   3
                     6   10
             --> exon
                     4   8
       ->gene2
             --> CDS
                     4   9

我正在尝试使用python Dictionaries创建和打印上述数据结构。我对Python很陌生,这就是为什么我无法创建它。需要帮助来创建它。

尝试:

dict = {'name' :{'gene1': {'CDS' : [1, 3]}}}
for name in dict:
        print name
        for gene in dict[name]:
                print "\t" +gene
                for feature in dict[name][gene]:
                        print "\t\t"+feature
                        print "\t\t\t",
                        print dict[name][gene][feature]

输出:

name
        gene1
                CDS
                        [1, 3]

1 个答案:

答案 0 :(得分:2)

dct = {"gene1": {"CDS": [[1, 3], [6, 10]], "exon": [[4, 8]]}, "gene2": {"CDS": [[4, 9]]}}

for outer_key, outer_value in dct.items():
    print(outer_key)
    for inner_key, inner_value in outer_value.items():
        print("\t", inner_key)
        for elem in inner_value:
            print("\t\t", elem)

你的问题很不清楚,但这是一个可能的解决方案。

python2中的

items()iteritems()

这将输出:

gene2
         CDS
                 [4, 9]
gene1
         CDS
                 [1, 3]
                 [6, 10]
         exon
                 [4, 8]

gene1 gene2是外部字典中的键,CDSexon是内部字符串(外部字典的值),它们的值是列表(嵌套)列表)