我有以下代码,我试图根据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)
答案 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 ''