Case-insensitive string compare?

Chris Rebert clp at rebertia.com
Fri Sep 5 00:47:00 CEST 2008


On Thu, Sep 4, 2008 at 3:37 PM, Robert Dailey <rcdailey at gmail.com> wrote:
> On Thu, Sep 4, 2008 at 5:21 PM, Fredrik Lundh <fredrik at pythonware.com>
> wrote:
>>
>> Robert Dailey wrote:
>>
>>> I currently have a dictionary object that I'm doing the following with:
>>>
>>> if lib not in stage_map:
>>>    # ... do stuff ...
>>>
>>> However, this will perform a case-sensitive comparison between lib and
>>> each key in stage_map. Is there a way to make this do a case-insensitive
>>> comparison instead?
>>
>> dictionary lookups use the exact value.  to make a case-insensitive
>> lookup, use key.lower() instead of key when creating the dictionary, and
>> then do
>>
>>    if lib.lower() not in state_map:
>>        ...
>
> So you're saying to ensure that stage_map's keys are initially lower-case to
> begin with? Well, I can't do this either since the case of the keys is
> actually valuable later on. It's only for the purposes of this specific
> comparison operation that the case should be ignored.

Then store the string in its original case in the value part of the
key-value pair:

stage_map[key.lower()] = (key,whatever)

- Chris

>
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
Follow the path of the Iguana...
http://rebertia.com



More information about the Python-list mailing list