/ / Dostęp do wartości słownika w słowniku - python, python-2.7, słownik

Dostęp do wartości słownika w słowniku - python, python-2.7, słownik

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 № 1

Myś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}}