Dictionary to lowercase in Python

Teifion picture Teifion · Apr 18, 2009 · Viewed 57.6k times · Source

I wish to do this but for a dictionary:

"My string".lower()

Is there a built in function or should I use a loop?

Answer

Rick Copeland picture Rick Copeland · Apr 18, 2009

You will need to use either a loop or a list/generator comprehension. If you want to lowercase all the keys and values, you can do this::

dict((k.lower(), v.lower()) for k,v in {'My Key':'My Value'}.iteritems())

If you want to lowercase just the keys, you can do this::

dict((k.lower(), v) for k,v in {'My Key':'My Value'}.iteritems())

Generator expressions (used above) are often useful in building dictionaries; I use them all the time. All the expressivity of a loop comprehension with none of the memory overhead.