When are immutable tuples *essential*? Why can't you just use lists *everywhere* instead?
Steve Holden
steve at holdenweb.com
Mon Apr 23 13:28:09 EDT 2007
Neil Cerutti wrote:
> On 2007-04-21, Steven D'Aprano <steve at REMOVE.THIS.cybersource.com.au> wrote:
>> On Fri, 20 Apr 2007 15:36:00 -0700, seberino at spawar.navy.mil wrote:
>>>> The article explains that, amongst other things, tuples are
>>>> faster than lists, so if you are working with constant values
>>>> (inmutables) they are more indicated than lists.
>>> Thanks. I thought Python's design wasn't so concerned with
>>> optimizations. Adding a new type "just" for optimization
>>> reasons seems perhaps unnecessary. I could be wrong.
>> It's times like this I want to cry...
>>
>>
>>>>> adict = {(1,2): "parrot"}
>> Try replacing that tuple with a list. "Just optimization" my eye!
>
> So the question becomes: Why do Python dictionaries require keys
> to be of an immutable type?
>
Because otherwise people would expect to be able to use a list to select
a dictionary entry even after they'd modified elements of the list after
creating the dictionary entry. Which they couldn't. So Python doesn't
let them use lists.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com
More information about the Python-list
mailing list