我有这样的字典:
{
a: {
b: {
c: "Hello World!"
}
}
}
我有一个像这样的双端队列:
deque(["a", "b", "c"])
我想使用上面的两个数据结构打印Hello World!
- 如何做到这一点?
答案 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()
这是一种双端运算。