title: Performant python datastructure for saving and querying coordinates
body: <p>for a map-like class I currently save some objects in a dictionary like:</p>
  
  <pre><code>{(3,5):&lt;something&gt;, (1,12):&lt;whatever&gt;, (17,2):&lt;example&gt;}
  </code></pre>
  
  <p>The keys are representing x/y coordinates in tuples. Not every coordinate in such an area is occupied, there are also "holes".</p>
  
  <p>Some methods require to read out an area from that dictionary, such as "all objects from (2,5) to (6,10)". My present approach is to iterate over all keys and return all that are in the requested area. As these map-like dictionaries can get quite large I'm searching for a directer way for getting these areas. I thought about an OrdneredDict so I can stop the iteration if it gets past the requested area but maybe there is some better way?</p>