【问题标题】:How to access to multi-level dict python with iterators?如何使用迭代器访问多级 dict python?
【发布时间】:2019-02-14 14:40:48
【问题描述】:

我有这个字典/json:

data={
"paraview": {
    "3.5": {
        "image": "/data/singularity/containers/paraview_5.5.2.simg",
        "recipe": "/data/singularity/YAJE/yaje/paraview/Singularity.5.5.2",
        "source": "packet"
    },
    "5.5.2": {
        "image": "/data/singularity/containers/paraview_5.5.2.simg",
        "recipe": "/data/singularity/YAJE/yaje/paraview/Singularity.5.5.2",
        "source": "packet"
    }
  }
}

我可以找到一个值:

app ="paraview"
version= "3.5"

if app in data:
   if version in data[app]:
       print("ubucacion: {}".format(data[app][version]['image']))

输出:

ubucacion: /data/singularity/containers/paraview_5.5.2.simg

但是,对于非常大的字典,我如何使用迭代器来做到这一点?

【问题讨论】:

  • 我不确定你的意思是什么我很乐意提供帮助,你想遍历几个采石场
  • @JonasWolff,我需要做一个带有一些固定值的查询,但我担心如果字典增长很多,它的响应时间就会出现问题。这就是为什么我认为我应该做一些更有效率的事情
  • 字典使用哈希,所以我不认为大小是一个真正的问题

标签: python-3.x dictionary iterator


【解决方案1】:

你的意思是:

for i in [(app,version), (app,version)]:
    if i[0] in data and i[1] in data[i[0]]: # secondhalf of and statement won't run if first half is false
        print("ubucacion: {}".format(data[i[0]][i[1]]['image']))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2017-11-22
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2020-07-11
    相关资源
    最近更新 更多