我有一本字典velocity
。
velocity = {"x": ({"mag": 5}, {"dir", 1}), "y": ({"mag": 5}, {"dir", 1})}
我正在尝试访问"mag"
中"dir"
和"x"
的值。
这就是我尝试这样做的方式:
self.position["x"] += ( self.velocity["x"]["mag"] * self.velocity["x"]["dir"] )
我该怎么做?
答案 0 :(得分:2)
我认为您可能希望将速度定义为:
velocity = {"x":{"mag": 5, "dir": 1}, "y": {"mag": 5, "dir": 1} }
这样,您的赋值语句将起作用:
position["x"] += ( velocity["x"]["mag"] * velocity["x"]["dir"] )
答案 1 :(得分:1)
x
和y
键的值是元组,而不是dicts,因此您需要使用元组索引来访问它们:
>>> velocity['x'][0]['mag']
5
所以,你的任务应该是:
self.position["x"] += ( self.velocity["x"][0]["mag"] * self.velocity["x"][0]["dir"] )
为了使其更直接,请使velocity
成为dicts的词典:
{'x': {'mag': 5, 'dir': 1}, 'y': {'mag': 5, 'dir': 1}}