2016-01-11 31 views
7

Python'da, bir değer aralığında bir beton değerini nasıl eşleştirebilirim? Ben intervaltree paketini kullanarak bir çözüm bulabiliriz yorumlarınaSözlük aralığı

rd = rangedict() 
rd[(0, 10)] = 5 
print rd[4] # prints 5 
print rd[6] # prints 5 
rd[(5, 15)] = 20 
print rd[4] # prints 5 
print rd[6] # prints 20 
+1

hızlı bir google https yol açar intervaltree yüklemek pip bir aralık ağacını kullanabilirsiniz: // kod .google.com/p/intervalmap/ve http://joshuakugler.com/archives/30-BetweenDict,-a-Python-dict-for-value-ranges.html –

+0

(1) Yazmaya izin vermiyor. (2) Etkin karışma yerine doğrusal arama kullanır, değerlerin güncellenmesi gerekmez. Her ikisi de, soruda belirttiğim gereksinimleri çözmüyor. – knub

+0

Soru şu anki haliyle, stackoverflow için konu dışı görünmüyor. – user4815162342

cevap

0

Teşekkür: Temelde, ben sayılarla aralıkları ve endeks ile doldurabilirsiniz bir sözlük, istiyorum.

from intervaltree import IntervalTree 

tree = IntervalTree() 
tree.addi(0, 10, 5) 
print tree[4] 
print tree[6] 

# need to chop before, as the library stores both intervals otherwise 
tree.chop(5, 15) 
tree.addi(5, 15, 20) 
print tree[4] 
print tree[6]