python - 根据指定的键索引列表的次数可变
问题描述
假设您有一个名为 的变量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]
。
我想知道最优雅的实现是什么——我能想到的唯一解决方案是在过度硬编码一些细节的方式中使用一些暴力破解。
解决方案
正如评论中所指出的,这似乎不是一个很好的数据模型。但撇开这一点不谈,我可能会像这样实现访问器:
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
推荐阅读
- php - PDO-ODBC (MS SQL) 返回 NULL 结果
- c# - MySQL 与 Visual Studio 2017
- javascript - JS onload 事件不起作用
- excel - VBA如何在使用许多整数时避免recursion
- java - 如何从 Firebase 存储中检索图像的下载 URL?
- reactjs - 如何在 react js 中使用 npm 安装最新版本的 fontawesome?
- ios - 动态增加 tableView 中 UIView 的高度
- jquery - 如何使用引导程序使按钮出现在中心
- iphone - UITabbar 还使用额外的 UIButton [hell] swift 4 更改选项卡
- java - 如果在 Java/Android 中传递,请检查两个日期时间