2016-12-21 11 views
0

データ構造が必要:マルチレベル辞書を作成して印刷するには?

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

私はPythonの辞書を使用して上記のデータ構造を作成して印刷しようとしています。私は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] 
+2

だからあなたは何を持っているのか?あなたは多レベルの辞書を作成したようですが、あなたがどのようにそれを求めているかを正確に表示しています。 – jonrsharpe

+2

最初と重要なのは、dictをvar名として使用しないでください.dictはPythonの特別な単語です – Miguel

+0

@jonrsharpe:私の必要なデータ構造には2つの遺伝子(gene1とgene2)があり、CDSには2つの行があります。辞書の一部 – Arijit

答えて

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) 

あなたの質問は非常に明確ではないが、ここでは可能な解決策です。

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

gene1gene2CDSexonは、内側dicts(外側の辞書の値)と、そのされ、外側の辞書内のキーである:python2で

items()iteritems()

この意志出力であります値はリスト(ネストされたリスト)

関連する問題