【发布时间】:2016-10-02 15:41:09
【问题描述】:
当您一开始不知道要访问哪个键时,是否有一些简单的方法可以访问嵌套字典键?
例如:
dct = {'label': 'A', 'config': {'value': 'val1'}}
在这本字典中,我需要在另一个可以通过config 键访问的字典中访问label 键或value 键。
这取决于状态。
例如,如果我们有一个名为 label 的变量,那么如果:
label = True
if label:
key = 'label'
在这种情况下它很简单:
dct[key]
现在如果标签为假并且我需要访问嵌套字典,我该如何动态指定它,这样我就不需要在每个迭代项目上使用 ifs(我的意思是每次检查是否使用 label 而不是 value ,因为我会在开始迭代充满dct 字典的字典之前知道这一点)?
喜欢:
label = False
if label:
key = 'label'
else:
key = 'config..?' # it should be something like ['config']['value']
【问题讨论】:
-
您可以编写自己的字典类并覆盖
__getitem__方法以使用dict['config.value']- stackoverflow.com/questions/2390827/… -
或者只是将
key设为一个函数,例如key = lambda d: d['config']['value']. -
@kennytm 实际上它并不那么容易工作,因为它使它成为一个函数,并希望我调用那个方法,比如
dct[key(dct)],这并不能解决问题,因为那时我需要以不同的方式调用该键 -
@Andrius 如果将其设为函数,则在这两种情况下都将其称为
result = key(dct),而不是result = dct[key(dct)]...
标签: python python-2.7 dictionary