2017-07-15 25 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 '' 
相关问题