2015-11-13 185 views
0

我有以下字典:蟒蛇迭代

my_dict = {'h': 13.4 , 'geneName': TaT , 'mode': poor, 'depth': 5, 'detection': bad} 

我想只輸出geneName和檢測,如果該模式較差的。下面的工作不正常,因爲我遍歷模式,然後一旦條件滿足,我不能回到geneName。我嘗試將模式存儲到列表中,然後再調用它,但那很麻煩。有什麼想法嗎?

for k,v in my_dict.iteritems(): 
    if k == 'mode': 
    if v == 'poor':  
     if k == 'geneName': 
     gene_name = v  
      if k == 'detection': 
      detection = v 
+0

做喲你只有一本字典或一本字典清單? – ErikR

+0

只是一個,謝謝它的作品 – Mark

回答

2

如果你只有一個解釋,只取直接鍵值:

if my_dict['mode'] == 'poor': 
    print my_dict['geneName'] 

如果你有一個字典列表,把這個if語句內的for循環:

for d in listOfDicts: 
    if d['mode'] == 'poor': 
    print d['geneName'] 
0

試試這個 -

>>> my_dict = {'h': 13.4 , 'geneName': 'TaT' , 'mode': 'poor', 'depth': 5, 'detection':'bad'} 
>>> if my_dict.get('mode') == 'poor': 
... print my_dict.get('geneName'), my_dict.get('detection') 
... 
TaT bad