MCPcopy Create free account
hub / github.com/ActiveState/code / fallInDict

Function fallInDict

recipes/Python/278259_Dictionary_Tools/recipe-278259.py:143–186  ·  view source on GitHub ↗

oo: { 'a':3, 'b':5, 'c':2 } accumDict(oo): { 'a':3, 'b':8, 'c':10 } fallInDict(0, oo)=0 fallInDict(1, oo)=0 fallInDict(2, oo)=0 fallInDict(3, oo)=0 fallInDict(4, oo)=1 fallInDict(5, oo)=1 fallInDict(6, oo)=1 fallI

(val, aDict, baseValue=0)

Source from the content-addressed store, hash-verified

141#========================================================================
142
143def fallInDict(val, aDict, baseValue=0):
144 '''
145 oo:
146 {
147 'a':3,
148 'b':5,
149 'c':2
150 }
151 accumDict(oo):
152 {
153 'a':3,
154 'b':8,
155 'c':10
156 }
157 fallInDict(0, oo)=0
158 fallInDict(1, oo)=0
159 fallInDict(2, oo)=0
160 fallInDict(3, oo)=0
161 fallInDict(4, oo)=1
162 fallInDict(5, oo)=1
163 fallInDict(6, oo)=1
164 fallInDict(7, oo)=1
165 fallInDict(8, oo)=1
166 fallInDict(9, oo)=2
167 fallInDict(10, oo)=2
168
169 When val out of range:
170
171 fallInDict(-1, oo)= -1
172 fallInDict(11, oo)= -2
173 fallInDict(12, oo)= -2
174 '''
175
176 if val<baseValue: return -1
177 acd = accumDict(aDict)
178 if val>acd.values()[-1]: return -2
179
180 ra = range(len(acd))
181
182 for i in ra:
183 vInDict = acd.values()[i]
184 if val <= vInDict: break
185
186 return aDict.keys()[i]
187
188#========================================================================
189

Callers

nothing calls this directly

Calls 4

accumDictFunction · 0.85
rangeFunction · 0.85
valuesMethod · 0.45
keysMethod · 0.45

Tested by

no test coverage detected