使用双端队列导航嵌套字典

时间:2018-04-30 03:40:16

标签: python

我有这样的字典:

{
    a: {
        b: {
            c: "Hello World!"
        }
    }
}

我有一个像这样的双端队列:

deque(["a", "b", "c"])

我想使用上面的两个数据结构打印Hello World! - 如何做到这一点?

2 个答案:

答案 0 :(得分:3)

我不知道你为什么要这样做,但这可能会有所帮助:

 for i in deque(['a','b','c']):
     d= d[i]
 > d
 Hello World!

仅当dict具有这些键时才有效,您可以尽可能地改进代码。
还有一个想法是,字典应该有'的密钥,如'a'

答案 1 :(得分:1)

如果x是您的字典,y是您的字谜:

while y:
    x = x[y.popleft()]

x现在是:

'Hello World!'

有更简单的方法可以实现这一点,例如@miradulo提到:

functools.reduce(operator.getitem, y, x)

但是这会使用popleft()这是一种双端运算。