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

问题描述 投票:0回答:2

我有一把带钥匙的字典

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

如何通过其键有效地解决一个值而不遍历整个列表???

python python-3.x dictionary
2个回答
1
投票

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

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

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

# ['Car segment']

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


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])

产量

汽车细分

© www.soinside.com 2019 - 2024. All rights reserved.