优雅的pythonic解决方案,用于在Unicode字符串的嵌套字典中强制所有键和值小写?

Dav*_*vid 3 python

我很好奇周围的Python Ninjas如何优雅和诡异地执行以下操作:

我有一个数据结构,它是从unicode字符串到unicode字符串到unicode字符串列表的字典.所以:

>>> type(myDict)
<type 'dict'>
>>> type(myDict[u'myKey'])
<type 'dict'>
>>> type(myDict[u'myKey'][u'myKey2'])
<type 'list'>
>>> type(myDict[u'myKey'][u'myKey2'][0])
<type 'unicode'>
Run Code Online (Sandbox Code Playgroud)

我想通过并使每个字符串小写,即每个列表中的每个键和每个字符串.

你会怎么做?

Nic*_*ley 19

真的很简单,虽然我不确定你叫它Pythonic:

newDict = eval(repr(myDict).lower())
Run Code Online (Sandbox Code Playgroud)

Saner方式:

newDict = dict((k1.lower(),
                dict((k2.lower(),
                      [s.lower() for s in v2]) for k2, v2 in v1.iteritems()))
               for k1, v1 in myDict.iteritems())
Run Code Online (Sandbox Code Playgroud)