Il y a donc une liste Je veux partitionner la liste dans deux listes: une contenant les éléments aux indices pour la première liste J'ai déjà une solution simple. P> list = ['A', 'B', 'C', 'D', 'E'] CODE> et une liste d'indices indices = [1 , 2, 4] code>. code> ( ['B', 'C', 'E'] CODE>) et un contenant tous les autres éléments ( ['a', 'd' code>). p> Indices = np.array(Indices)
List = np.array(List)
In_List = list(List[Indices])
Out_List = list(np.delete(List, Indices))
5 Réponses :
Ce n'est pas plus elgant, mais au moins vous évitez de courir deux pour les boucles (qui est assez inefficace si vous traitez avec beaucoup de données).
import numpy as np Indices = np.array(Indices) List = np.array(List) In_List = List[Indices] Out_List = np.delete(List, Indices)
Vous pouvez obtenir le même résultat avec une seule analyse de votre code> code> à l'aide de la méthode code> énumérer code>: définir code> au lieu d'une liste code>. p> p>
Vous pouvez utiliser l'élément d'élément du module opérateur: sortie: p>
Ceci fonctionnerait également: où j'utilise i dans indices code> comme index pour le tuple imbriqué RET code> puis le décompressez-le. Dans la dernière ligne pour obtenir in_list code> et out_list code>. p> p>
OUT_LIST = [LISTE [I] POUR I TRIED (SET (Plage (LEN (LISTE)) - SET (INDICES))] CODE>Si vous avez une solution de travail et que vous souhaitez l'améliorer, envisagez de demander à codereview.stackexchange.com