2016-06-24 8 views
0

だから、私はちょっとこの辞書functionが混乱しています。 (endpoint_pose関数)辞書のpythonにネストされたタプルの項目にアクセスしています

入れ子の辞書やタプルのような辞書だと思われます。関数が返すものは

{'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)} 

どのように私はz座標位置にアクセスできますか?

+0

@ restaurant ...下記の回答に問題がありますか?...あなたの問題を解決したことがない場合は、フィードバックをお寄せください。 –

答えて

0

結果ルックスオブジェクトを持つ辞書のように。

>>> 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をご覧ください。

0

reprを欺くが、通常はこれを好きではないことができます)z属性でPointは、クラス(またはnamedtupleまたは何でも)であると仮定すると、あなたはキーで検索することができ、アクセスは通常、属性:

mydict['position'].z 
0

あなたのリンクは実際に(によるフレームへの)任意の関数には行きませんが、私はそれはあなたが話しているこのいずれかです推測している:

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

いずれにしても、この関数は2つの異なるnamedtupleの辞書を返します。あなたは、zは例えばによって座標位置をアクセスしたい:

pose = limb.endpoint_pose() 
z_coord = pose['position'].z 
何リターンが namedtupleの辞書であるとして、あなたはそう単純に、zの要素にアクセスするには、取得
1

>>> 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 
関連する問題