<p>我跟随这篇文章创建函数,这些函数在给定键列表的情况下获取并设置嵌套字典中的值:<a href="https://stackoverflow.com/questions/14692690/access-python-nested-dictionary-items-via-a-list-of-keys">Access nested dictionary items via a list of keys?</a></p>
<pre><code># get a dict value with a list of nested keys
def getFromDict(dataDict, mapList):
return reduce(lambda d, k: d[k], mapList, dataDict)
# set a dict value with a list of nested keys
def setInDict(dataDict, mapList, value):
getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value
</code></pre>
<p>在避免reduce的情况下,如何使用列表理解或其他方法以pythonic(2.x)的方式实现呢?在</p>
<p>你的结果不是一个列表,所以列表理解是不可能的。试试这个:</p>
<pre><code>def get_from_dict(data, keys):
for key in keys:
data = data[key]
return data
def set_in_dict(data, keys, value):
get_from_dict(data, keys[:-1])[keys[-1]] = value
</code></pre>