Tengo listA
y listB
del mismo tamaño. Estoy haciendo GatherBy
en listA
, que reorganiza esa lista. ¿Cuál es una forma elegante de aplicar una reorganización idéntica al listB
?Aplicar la transformación de `GatherBy` a una lista diferente
Por ejemplo
listA = {1, 2, 3};
listB = {a, b, c};
listA1 = GatherBy[{1, 2, 3}, OddQ];
listB1
debe convertirse en {{a, c}, {b}}
actualización Gracias por ideas interesantes, que finalmente terminó haciendo algo similar a Belisario. Esto me recuerda a Pitón de "decorar-tipo-Undecorate" patrón
decorated = Thread[{listA, listB}];
grouped = GatherBy[decorated, OddQ[First[#]] &];
listB1 = Map[Last, grouped, {2}]
Para listas realmente grandes, 'agrupadas [[Todas, Todas, -1]]' pueden ser más rápido o mucho más rápido que usar 'Map' (no estoy seguro si esto es relevante hormiga para su caso) –