J'ai une liste d'actions à partir d'une base de données. Ceci est copié dans une deque puisque je veux le traiter dans l'ordre, en sautant des choses sur la gauche comme je vais. J'ai donc quelque chose comme actions = deque (actions) ce qui est bien. Chaque action est une liste du module psycopg utilisant le DictCursor. Chaque liste a l'élément 'phase'.python deque/list filtering
Alors les choses vont en phases. Certaines actions sont en phase 'a', certaines en phase 'b', etc. Ce n'est pas la meilleure façon de stocker les données mais c'est ce qui m'a été donné. Donc, pour faciliter ma vie, je veux diviser la deque en plusieurs deques par phase.
Donc, si des actions [0] [ 'étape'] == 'a' alors cela va dans une liste ne contenant que des éléments de la phase un, et ainsi de suite avec, b, etc.
je pouvais faire avec un tas de ifs et d'ajout, mais cela semble être beaucoup d'efforts. Je pense que la réponse pourrait être filter(), mais je ne sais pas trop comment l'utiliser.
choses au hasard à noter:
- Chaque élément est en ordre, l'ordre doit préserver au sein de chaque deque.
- Les phases sont connues et séquentielles. Par exemple, si la phase c n'existe pas, nous savons que la phase d n'existe pas. Il y a un nombre fini de phases, quelque chose comme 5 si je me souviens bien.
Précision tentative:
J'ai un deque, des actions. quelque chose comme:
actions = [
['phase': 'a', 'something_else': 'x'],
['phase': 'a', 'something_else': 'y'],
['phase': 'b', 'something_else': 'x']
]
Vous voulez finir avec (quelque chose comme):
a = [
['phase': 'a', 'something_else': 'x'],
['phase': 'a', 'something_else': 'y']
]
b = [
['phase': 'b', 'something_else': 'x']
]
Avec la quantité minimale de code, et quelque chose qui fonctionne pour un certain nombre de phases/articles dans les phases/etc.
Il est difficile de dire exactement quelle est la question ici. – Hooked
C'est un peu compliqué, oui, mais saisir la question n'est pas difficile après une lecture approfondie. –
Je l'ai clarifié dans tous les cas avec un exemple. Mais oui, je suis terrible à expliquer les choses. –