Wie überprüft man, ob eine Liste Werte aus einer anderen Liste enthält?Gibt es dafür einen eleganten Einzeiler, anstatt mit der Funktion Contains() durch die zweite Liste zu iterieren?
Automatisierung und SkriptingBetreff: Wie überprüft man, ob eine Liste Werte aus einer anderen Liste enthält?Kein Einzeiler, aber eleganter als eine Schleife:
A = {1, 2, 3, 4, 5};
B = {3, 6, 7};
check = Associative Array(A);
check << Intersect(Associative Array(B));
N Items(check);Betreff: Wie überprüft man, ob eine Liste Werte aus einer anderen Liste enthält?Sie können eine der Listen durchlaufen und Contains() verwenden, um zu sehen, ob das bestimmte Listenelement irgendwo in der anderen Liste gefunden wird.
Oder Sie können beide Listen in separate assoziative Arrays konvertieren und dann nach der Schnittmenge zwischen den beiden Arrays suchen.
Names Default To Here( 1 );
listA = {"a", "b", "c"};
listB = {"d", "c", "f"};
inBothList = {};
For Each( {member}, listA,
If( Contains( listB, member ),
Insert Into( inBothList, member )
)
);
Show( inBothList );
arrayA = Associative Array( listA );
arrayB = Associative Array( listB );
arrayA << intersect( ArrayB);
show( arrayA );Betreff: Wie überprüft man, ob eine Liste Werte aus einer anderen Liste enthält?Normalerweise verwende ich entweder For Each + Break oder Associative Arrays, aber es gibt viele verschiedene Methoden, bei denen Sie Funktionen etwas „falsch“ verwenden können, wie z. B. Transform Each („Einzeiler“ wie dieser sind normalerweise (meiner Meinung nach) schreckliche Ideen, da sie tendenziell schwer zu lesen sind).
Names Default To Here( 1 );
A = {1, 2, 3, 4, 5};
B = {3, 6, 7};
r = Eval(Transform Each({item}, A, Output("Expression", "Any"), Contains(B, item)));
Es hängt auch davon ab, was Sie vergleichen: Zeichenfolgen, Ganzzahlen, Gleitkommazahlen, Listen usw., da JMP-Listen grundsätzlich alles enthalten können.