У меня есть список действий из базы данных. Это скопировано в deque, так как я хочу с этим справиться, чтобы поскользнуться с левой стороны.python deque/list filtering
Итак, у меня есть что-то вроде действий = deque (действия), которые в порядке.
Каждый элемент действия представляет собой список из модуля psycopg с использованием DictCursor. Каждый список имеет этап «фаза».
Так что все идет поэтапно. Некоторые действия находятся в фазе «a», некоторые по фазе «b» и т. Д. Не лучший способ хранения данных, но это то, что мне дано.
Так что, чтобы облегчить мою жизнь, я хочу разбить деку на несколько уровней по фазе.
Так что, если действия [0] [ «фаза»] == «а», то это идет в список, содержащий только элементы из фазы а, и так далее с, б и т.д.
Я мог бы это сделать с кучей ifs и добавлением, но это похоже на много усилий. Я думаю, что ответ может быть filter(), но я не уверен, как его использовать.
Случайные вещи, чтобы отметить:
- Каждый элемент в порядке, заказ необходимо сохранение в каждой двусторонней очереди.
- Фазы известны и последовательны. Например, если фаза c не существует, мы знаем, что фаза d не существует. Есть конечное число фаз, что-то вроде 5, если я помню.
Разъяснение попытка:
У меня есть Deque, действия. что-то вроде:
actions = [
['phase': 'a', 'something_else': 'x'],
['phase': 'a', 'something_else': 'y'],
['phase': 'b', 'something_else': 'x']
]
Хочет закончить с (что-то вроде):
a = [
['phase': 'a', 'something_else': 'x'],
['phase': 'a', 'something_else': 'y']
]
b = [
['phase': 'b', 'something_else': 'x']
]
С минимальным количеством коды, и то, что работает для любого числа фаз/элементов в фазах/и т.д..
Трудно точно сказать, в чем вопрос. – Hooked
Это немного запутанно, да, но схватывание вопроса не сложно после тщательного чтения. –
Я вкратце объяснил это примером. Но да, я ужасно объясняю вещи. –