Why KeyError ???
phr-n2002a at nightsong.com
Wed Mar 6 04:22:01 CET 2002
"Raymond Hettinger" <python at rcn.com> writes:
> > KeyError: šđčćž
> > >>> a == b
> > 1
> Hmm. I don't get the same identity check results as you do:
> >>> a = '\xe7\xd0\x9f\x86\xa7'
> >>> b = unicode(a,'cp1250')
> >>> a is b
Try == rather than 'is'. The docs are a little bit imprecise about
what's supposed to happen here, but 2.2.7 "Mapping types" says about
A dictionary's keys are almost arbitrary values. The only types of
values not acceptable as keys are values containing lists or
dictionaries or other mutable types that are compared by value rather
than by object identity. Numeric types used for keys obey the normal
rules for numeric comparison: if two numbers compare equal (e.g. 1 and
1.0) then they can be used interchangeably to index the same
That makes it surprising if two unicode strings that compare as ==
don't index the same dictionary item.
More information about the Python-list