首页 > 解决方案 > 根据指定的键索引列表的次数可变

问题描述

假设您有一个名为 的变量list_a。有时里面的对象本身也是列表,因此根据您的需要可能需要多个索引。

你有以下字典:

field_dict = {
    'name':[1],
    'birthdate':[2,5],
    'gender':[5,1,3]
}

上面列表中的每个值都表示如何索引list_a以访问所需的值。

要得到一个人的名字,我只需要索引list_a一次,像这样:list_a[1].

要访问他们的生日,我会这样做list_a[2][5]。这就是多重​​索引的用武之地。同样,要访问性别,我会这样做list_a[5][1][3]

我想知道最优雅的实现是什么——我能想到的唯一解决方案是在过度硬编码一些细节的方式中使用一些暴力破解。

标签: python

解决方案


正如评论中所指出的,这似乎不是一个很好的数据模型。但撇开这一点不谈,我可能会像这样实现访问器:

def get_item(obj, indices):
    if indices:
        return get_item(obj[indices[0]], indices[1:])
    else:
        return obj

或迭代:

def get_item(obj, indices):
    while indices:
        obj = indices[0]
        indices = indices[1:]
    return obj

推荐阅读