2017-07-15 60 views
0

我有以下代碼,即時試圖獲得基於num鍵值測試的外部字典鍵,例如,如果chan_num是248我想獲得'生活方式&文化'鍵,但目前我總是與第一項相匹配。如何匹配不同的字典鍵值

我該如何做到這一點?

chan_tags = { 
    'Entertainment': {'num': 101, 'on': 1}, 
    'Lifestyle and Culture': { 'num': 240, 'on': 1 }, 
    'Movies': { 'num': 301, 'on': 1 } 
    } 

def chanToTag(chan_num, chan_tags): 
    tag = "" 
    for n in sorted(chan_tags, key=lambda k: chan_tags[k]['num']): 
     if chan_num >= chan_tags[n]['num']: 
       tag = n    
       break 
    return tag 

tag_name = chanToTag(248, chan_tags) 

print(tag_name) 
+0

註釋掉休息或刪除它工作正常 –

回答

0

先迭代更大的num條目。傳遞reverse=True關鍵字參數使sorted逆向排序:

def chanToTag(chan_num, chan_tags): 
    for n in sorted(chan_tags, key=lambda k: chan_tags[k]['num'], reverse=True): 
     if chan_num >= chan_tags[n]['num']: 
      return n 
    return ''