У меня есть список данных, который выглядит следующим образом:
// 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()): если он есть, добавьте данные, если не создайте пустой список как значение словаря, а затем добавьте данные в следующий цикл.