Mam słownik velocity
.
velocity = {"x": ({"mag": 5}, {"dir", 1}), "y": ({"mag": 5}, {"dir", 1})}
Próbuję uzyskać dostęp do wartości "mag"
i "dir"
w ciągu "x"
.
Tak właśnie próbowałem to zrobić:
self.position["x"] += ( self.velocity["x"]["mag"] * self.velocity["x"]["dir"] )
Jak mam to zrobić?
Odpowiedzi:
2 dla odpowiedzi № 1Myślę, że możesz chcieć zdefiniować prędkość jako:
velocity = {"x":{"mag": 5, "dir": 1}, "y": {"mag": 5, "dir": 1} }
W ten sposób twoje polecenie przypisania zadziała:
position["x"] += ( velocity["x"]["mag"] * velocity["x"]["dir"] )
1 dla odpowiedzi nr 2
Wartości x
i y
klucze są krotkami, a nie dyktami, więc musisz użyć indeksowania krotek, aby uzyskać do nich dostęp:
>>> velocity["x"][0]["mag"]
5
Twoim zadaniem powinno być:
self.position["x"] += ( self.velocity["x"][0]["mag"] * self.velocity["x"][0]["dir"] )
Aby uczynić to bardziej prostym, uczyń velocity
dyktada dyktów:
{"x": {"mag": 5, "dir": 1}, "y": {"mag": 5, "dir": 1}}