由于元组是不可变的,您需要删除旧的并创建一个新的。这适用于 Python 2 和 3,并且保留了原始字典:
>>> d = {('Foo', 0): 0, ('Bar', 0): 0}
>>> for (k, j), v in list(d.items()): # list key-value pairs for safe iteration
... del d[k,j] # remove the old key (and value)
... d[(k.lower(), j)] = v # set the new key-value pair
...
>>> d
{('foo', 0): 0, ('bar', 0): 0}
注意,在 Python 2 中,dict.items() 返回一个列表副本,因此不需要将其传递给 list,但我选择保留它是为了与 Python 3 完全兼容。
您还可以使用生成器语句馈送到dict,并让旧字典收集垃圾。这也与 Python 2.7、2.6 和 3 兼容。
>>> d = {('Foo', 0): 0, ('Bar', 0): 0}
>>> d = dict(((k.lower(), j), v) for (k, j), v in d.items())
>>> d
{('bar', 0): 0, ('foo', 0): 0}