title: Python Dictionary Size Maximum Limit
body: <p>I am trying to understand the reason for the following MemoryError. Is there some pre-defined limit on dictionaries in python?</p>
  
  <p>self.text is long string read in from a file (about 4.5 MB)
  L is equal to 4641652</p>
  
  <pre><code>    L = len(self.text) 
      test = {}
      for i in xrange(L,0,-1):
          try:
              test[i] = self.text[i-1:]
          except MemoryError:
              print "Memory Error at the " + str(i) +"th iteration!"
              print sys.getsizeof(test)
              print len(test)
              exit()
  </code></pre>
  
  <p>Output</p>
  
  <pre><code>Memory Error at the 4577890th iteration!
  1573004
  63762
  </code></pre>
  
  <p>I am running the program on a windows machine with 16gb of ram if that helps.</p>