python - Finding values in a dictionary if key matches in a range -
i have list , dictionary:
l = [1, 4, 22, 33] dict = {1: 'red', 17: 'green', 33: 'blue'};
my goal return new list composed values (colors) associated each element in l
if between key
key+16
.
i know how retrieve value if element of list matches key in dictionary, don't know how consider each key range , assign color every element in l
.
the expected output be:
['red', 'red', 'green', 'blue']
i know generating list dict able iterate on 2 lists, finding values in range. problem working 2 of more 80,000 elements per list, time , thought dictionary better.
you can integer division:
>>> l = [1, 4, 22, 33] >>> dct = {1: 'red', 17: 'green', 33: 'blue'} # don't name own dictionary dict >>> [dct[16*((x-1)//16)+1] x in l] ['red', 'red', 'green', 'blue']
basically, maps every number e.g. 1
16
inclusive 1
, every number 17
32
inclusive 17
, etc.
Comments
Post a Comment