如何匹配不同的dict键值

时间:2017-07-15 08:52:14

标签: python

我有以下代码,我试图根据num键值的测试获得外部dict键,例如如果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)

1 个答案:

答案 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 ''