2024-09-25 14:27:15 发布
网友
我有一个嵌套dict和键值的dict。在
dicta = {'key1': {'keya': 'a', 'keyb': 'b'}, 'key2': {'key3':{'keyc': 'c'}}, 'key4': 4}}
有没有办法我可以用for循环来得到'c'?在
我试过了
我要第一次打印
{'key3': {'keyc': 'c'}}
但是我得到了TypeError:第二次打印字符串索引必须是整数。在
提前谢谢! *我编辑了用dicta代替n;我第一次复制粘贴错了。在
for i in somedict将循环字典中的所有键。 从dict views查看更多详细信息
for i in somedict
When looping through dictionaries, the key and corresponding value can be retrieved at the same time using the items() method.
items()
items()返回字典项((键,值)对的新视图。 所以你可以试试这个:
for k,v in dicta['key2'].items(): if isinstance(v,dict): for k1,v1 in v.items(): print(v1)
isinstance(v,dict)如果object参数是dict参数的实例,则返回true,因此不需要捕捉异常。在
isinstance(v,dict)
dict
看看looping-techniques
希望这有帮助。在
for k in n: v = n.get(k) if isinstance(v, dict): for j in v: print(v.get(j))
一般来说,不可能。dict可以任意递归深度,除了使用for循环外,没有什么好方法可以遍历它们。(您可以使用列表实现自己的堆栈并模拟递归,但这并不“好”。)
for
在this question.中有一些遍历字典(计算深度)的递归代码
具体来说,当然。预先了解结构,可以使用正确数量的for循环:
n = {'key1': {'keya': 'a', 'keyb': 'b'}, 'key2': {'key3':{'keyc': 'c'}}, 'key4': 4} for k1,v1 in n.items(): try: for k2,v2 in v1.items(): try: for k3,v3 in v2.items(): print(v3) except AttributeError: pass except AttributeError: pass
for i in somedict
将循环字典中的所有键。 从dict views查看更多详细信息items()返回字典项((键,值)对的新视图。 所以你可以试试这个:
isinstance(v,dict)
如果object参数是dict
参数的实例,则返回true,因此不需要捕捉异常。在看看looping-techniques
希望这有帮助。在
一般来说,不可能。dict可以任意递归深度,除了使用
for
循环外,没有什么好方法可以遍历它们。(您可以使用列表实现自己的堆栈并模拟递归,但这并不“好”。)在this question.中有一些遍历字典(计算深度)的递归代码
具体来说,当然。预先了解结构,可以使用正确数量的
for
循环:相关问题 更多 >
编程相关推荐