Surprise using the 'is' operator

Steve Holden steve at
Wed Sep 27 18:58:51 CEST 2006

tobiah wrote:
> Simon Brunning wrote:
>>On 9/27/06, tobiah <toby at> wrote:
>>>Suppose I fill an list with 100 million random integers in the range
>>>of 1 - 65535.  Wouldn't I save much memory if all of the ocurrances
>>>of '12345' pointed to the same integer object?  Why should more be made,
>>>when they all do the same thing, and are not subject to change?
>>If you were to drop that list, then to generate another large list of
>>integers, you'd want to re-use the memory from the first lot, wouldn't
>>(BTW, AFAIK, integers are kept seperate from other objects
>>memory-wise, so memory used for integers won'tr be re-used for other
>>object types. but memory used for integers can be re-used for *other*
>>integers. I think.)
> I'm confused now, but yes, I would want to reuse the memory for
> the other integers.  That's why I understand why I get the same
> id back for small integers, but why limit that to (-5, 257)?
> Thanks,
> Toby
It's what's called an "implementation detail". Don't even worry about it 
until you need to shave every microsecond off your program's execution 
time, as reliance on such details reduces portability.

Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd
Skype: holdenweb
Recent Ramblings

More information about the Python-list mailing list