次のようなデータのリストがあります。
// timestep,x_position,y_position
0,4,7
0,2,7
0,9,5
0,6,7
1,2,5
1,4,7
1,9,0
1,6,8
...そして、私はこれを次のようにしたい:
0, (4,7), (2,7), (9,5), (6,7)
1, (2,5), (4,7), (9,0), (6.8)
私の計画は、t の値が辞書のキーであり、キーに対する値がリストになる辞書を使用することでした。次に、各 (x,y) をリストに追加します。何かのようなもの:
# where t = 0, c = (4,7), d = {}
# code 1
d[t].append(c)
これにより、IDLE が失敗します。しかし、もしそうなら:
# code 2
d[t] = []
d[t].append(c)
...これは機能します。
問題は、なぜコード 2 は機能するのにコード 1 が機能しないのかということです。
PS私がやろうとしていることの改善は非常に興味深いでしょう!! 入力を介して各ループで辞書をチェックして、辞書キーが既に存在するかどうかを確認する必要があると思います。 max(d.keys()): のようなものを使用して推測します。存在する場合はデータを追加し、そうでない場合は作成します辞書の値として空のリストを作成し、次のループでデータを追加します。