访问嵌套在字典python中的元组中的项

时间:2016-06-24 20:47:37

标签: python dictionary indexing nested tuples

所以我对这个function返回的词典感到有些困惑。 (endpoint_pose函数)

它似乎是一本字典,嵌套字典或元组我不确定。函数返回的是

StorageFile

如何访问z坐标位置?

4 个答案:

答案 0 :(得分:1)

作为回复获得的是namedtuple的字典,因此要访问z元素,只需:

>>> from collections import namedtuple
>>>
>>> Point = namedtuple('Point', ['x','y','z'])
>>> Quaternion = namedtuple('Quaternion', ['x','y','z','w'])
>>> 
>>> 
>>> mycoords = {'position': Point(x=0.7938064310002948, y=0.4000015952566877, z=0.28522708748065545), 'orientation': Quaternion(x=-0.18674837754140436, y=0.7484662663927322, z=-0.5955181308876427, w=0.22423524999844527)}
>>> 
>>> 
>>> mycoords['position'].z
0.28522708748065545
>>> 
>>> 
>>> mycoords['orientation'].z
-0.5955181308876427

答案 1 :(得分:0)

假设Point是具有namedtuple属性的类(或z或其他)(repr可能是欺骗,但通常不是这样),可以按键查找,然后正常访问属性:

mydict['position'].z

答案 2 :(得分:0)

您的链接实际上并未转到任何功能(由于相框),但我猜测它是您所说的那个:

http://api.rethinkrobotics.com/baxter_interface/html/baxter_interface.limb.Limb-class.html#endpoint_pose

无论哪种方式,该函数都会返回一个包含两个不同namedtuple s的字典。您可以通过例如:

访问z坐标位置
pose = limb.endpoint_pose()
z_coord = pose['position'].z

答案 3 :(得分:0)

结果看起来像带有对象的字典。看看datetime的外观:

>>> import datetime
>>> datetime.date.today()
datetime.date(2016, 6, 24)

在对象中访问变量 z 是一个简单的字典查找并访问该属性:

>>> result = {'position': Point(x=0.7938064310002948, y=0.4000015952566877, z=0.28522708748065545), 'orientation': Quaternion(x=-0.18674837754140436, y=0.7484662663927322, z=-0.5955181308876427, w=0.22423524999844527)}
>>> result['position'].z
0.28522708748065545
祝你好运!

编辑:@ iron-fist确实提供了有关字典中对象类型的详细信息。如果您想了解有关namedtuples的更多信息,请查看Iron Fist的评论here