В настоящее время я просматриваю таблицу со следующей структурой.Создать список для каждого уникального значения
uid | action
1 | A1
1 | A1
1 | A1
1 | A4
2 | A1
2 | A8
2 | A9
3 | A3
3 | A7
Я пытаюсь создать многомерный массив со следующей структурой.
[[A1, A1, A1, A4], [A1, A8, A9], [A3, A7]]
Моя идея заключается в том, чтобы следить в uid
и добавлять действия в список до тех uid
ключевых изменений. Как только ключ uid
изменится, все действия будут добавлены к другому массиву, а отслеживаемый uid
изменится на новый uid
.
Я придумал несколько раздутое и неправильное решение, используя itertools.groupby()
, но я не удовлетворен этим и ищу что-то более простое. Однако я передумал эту проблему и придумываю более сложные решения.
Любые советы будут оценены.
Код:
data = []
for i, j in itertools.groupby(table, key=lambda x: x['uid']):
event_array = []
for k in list(j):
event_array.append(k['action'])
data.append([i, event_array])
Если последовательность уже отсортирован, 'itertools.groupby' был бы одним из лучших вариантов здесь. – thefourtheye
Каков формат таблицы? Последовательность двух кортежей, представляющих строки? Словарь? – brianmearns
@ sh1ftst0rm словарь. – Black