Python字典组合了作为段范围的键

时间:2018-02-01 16:21:04

标签: python python-3.x dictionary

我有一个带键的字典

segments = { (0,13):'Bike segment', (22,217):'Car segment' }

如何找到项目:122所属的正确段?

print(segments[122]) - KeyError

显然不是这样做的方式因此阅读范围,好吧,似乎是合法的:

segments = { range(0,13):'Bike segment', range(22,217):'Car segment' }
print(segments[122]) - KeyError

segments = { (if 0<= value <=13) :'Bike segment', (if 22<=value<=217):'Car segment' } # not working

如何通过密钥有效地解析一个值,而不必遍历整个列表???

2 个答案:

答案 0 :(得分:1)

如果您将范围表示为元组字典键,则可以使用:

segments = {(0, 13): 'Bike segment', (22, 217): 'Car segment'}

[v for k, v in segments.items() if 122 in range(*k)]

# ['Car segment']

如果范围不相互排斥,则可能会有多个元素。如果您的输入在其中一个范围内不存在,则您将有一个空列表。

答案 1 :(得分:0)

试试这个

segments={}
for i in range(0,13)    :
    segments[i] = 'Bike segment'

for i in range(22,217) :
    segments[i] = 'Car segment' 

print(segments[122])

输出

  

汽车细分