我如何从a得到数字,什么?索引索引字典? (我什至不知道正确的用语)。
在这里仍然是一个相对的新手,但这是我第一次通过字典,虽然我理解了非常简单的基本概念,但是却缺少如何访问事物的方法。我的字典似乎以我想要的方式保存了我想要的数据,但是我在摸索如何访问它。
这是我的代码:
all_bone_keys[bone.GetName()][frame] = {"x":x[1], "y":y[1], "z":z[1]}
print (len(all_bone_keys["RL_Head"])
print (all_bone_keys["RL_Head"])
具有这些结果(一切正常):
2
{0: {'x': -0.4033583402633667, 'y': -0.08630772680044174, 'z': 0.4855811595916748}, 116: {'x': -0.13178503513336182, 'y': 0.3115540146827698, 'z': 0.2189643830060959}}
一切顺利-我有想要的数据,两个帧显示了我的x,y,z。我可以读取每个骨骼有多少个项目就好了,所以我知道有多少帧,如果我知道帧号,我什至可以访问x,y和z值:
print (all_bone_keys["RL_Head"][116]["x"])
-0.13178503513336182
但是首先如何获得116?我真正想知道的就是如何读取这些帧号,以便随后访问与它们关联的数据。
我看了无数的教程,但似乎都没有,因为它们几乎总是显示一个简单得多的字典示例。任何帮助将不胜感激。
答案 0 :(得分:0)
您有多种选择,大部分可以在这里找到:https://docs.python.org/3/library/stdtypes.html#mapping-types-dict
在您的情况下:
以获取键的字典视图,如注释中所述:
for frame in all_bone_keys["RL_Head"].keys():
print(frame, all_bone_keys["RL_Head"][frame]["x"])
一次获取框架和坐标(我最喜欢的大多数应用程序):
for frame, coord in all_bone_keys["RL_Head"].items():
print(frame, coord["x"])
以确保帧的顺序(https://mail.python.org/pipermail/python-dev/2017-December/151283.html):
for frame in sorted(all_bone_keys["RL_Head"].keys()):
print(frame, all_bone_keys["RL_Head"][frame]["x"])
或仅使用list
来检索简单键列表:
for frame in list(all_bone_keys["RL_Head"]):
print(frame, all_bone_keys["RL_Head"][frame]["x"])